.net开发中连接SQL SERVER数据库的问题

来源:互联网 发布:mac怎么复制粘贴 编辑:程序博客网 时间:2024/06/16 21:50

自己原来是负责javascript开发,但是最近这段时间打算自己做一个个人网站。

简单的表述一下吧,用到的技术方面大概是Html,css,javascript,用jq的库,没有使用到框架。 

因为自己之前没有做过完整的项目,所以在调用数据局数据的时候不知道怎么下手,自己也在网上学习了一番各位大佬的资料,于是有了这篇笔记啦。 

调用方法是ajax去调用C#写的ashx文件,通过ashx去连接sql server数据库.


以下数据库结构:

                                                               


以下是ashx文件code:

  <%@ WebHandler Language="C#" Class="daysuda" %>using System;using System.Web;using Newtonsoft.Json.Linq;using System.Data;using System.Data.SqlClient;using System.Configuration;public class daysuda : IHttpHandler{    public void ProcessRequest(HttpContext context)    {        string result = "";        string result_desc ="";        result = "{\"Result\":\"-1\",\"ResultDesc\":\"\"}";        string connectionString = System.Configuration.ConfigurationManager.AppSettings["Czw_test"].ToString();  //Czw_test是要连接的数据库的名称        SqlConnection connection = null;        try        {SqlCommand cmd =null;DataSet ds = new DataSet();SqlDataAdapter adapter = null;            string ActionCode = context.Request["ActionCode"].ToString();            result_desc = "";            connection = new SqlConnection(connectionString);            cmd = new SqlCommand();            connection.Open();            cmd.Connection = connection;            cmd.CommandType = CommandType.StoredProcedure; //此处定义调用的方法是调用存储过程            string Paras = context.Request["Paras"].ToString();            string[] para = Paras.Split(',');            switch (ActionCode)            {                case "0x1000":   //登陆测试                    //string script = "<script>alert(" + context.Request[para[2].ToString()].ToString() + ")</scritp>";                    //context.Response.Write(script);                    cmd.CommandText = "sys_UserLogin"; //存储过程名称                    cmd.Parameters.Add("@P_login_name", context.Request["login_name"].ToString());                    cmd.Parameters.Add("@P_pwd", context.Request["pwd"].ToString());                    break;            }            adapter = new SqlDataAdapter(cmd);            adapter.Fill(ds);            JObject obj = new JObject();            DataTable tab_fst = ds.Tables[ds.Tables.Count-1];            foreach (DataRow dr in tab_fst.Rows) {                foreach (DataColumn dc in tab_fst.Columns)                {                    obj.Add(dc.ColumnName, dr[dc.ColumnName].ToString());                }            }            JObject Rows = new JObject();            if (ds.Tables.Count > 1) {                DataTable tab_sec = ds.Tables[ds.Tables.Count - 2];                foreach (DataRow dr in tab_sec.Rows)                {                    foreach (DataColumn dc in tab_sec.Columns)                    {                        Rows.Add(dc.ColumnName, dr[dc.ColumnName].ToString());                    }                }                obj.Add("Rows",Rows);            }            result=obj.ToString();            cmd.Dispose();        }        catch (Exception ex)        {            result = "{\"Result\":\"-1\",\"ResultDesc\":\""+ex.ToString()+"!\"}";            if (connection!=null) connection.Close();        }        finally        {            if (connection != null) connection.Close();        }        context.Response.ContentType = "application/json";        context.Response.Write(result);        context.Response.End();    }     public bool IsReusable {        get {            return false;        }    }}

web.config配置如下:

<?xml version="1.0" encoding="utf-8"?><configuration>    <system.web>        <compilation debug="true" targetFramework="4.0" />        <httpRuntime requestValidationMode="2.0" maxQueryStringLength="10240" />    </system.web>    <appSettings>        <!--数据库 测试本地数据库名字是Czw_test-->        <add key="Czw_test" value="server=localhost;database=Czw_test;uid=sa;pwd=sa" />    </appSettings>    <connectionStrings>        <add name="Czw_test" connectionString="server=localhost;database=Czw_test;uid=sa;password=sa" providerName="System.Data.SqlClient" />    </connectionStrings>    <system.webServer>        <security>            <requestFiltering>                <fileExtensions>                    <add fileExtension=".htc" allowed="true" />                </fileExtensions>            </requestFiltering>        </security>    </system.webServer></configuration>

在js种的调用方法是:

 _this.Login = {        //登陆测试        login: function (login_name, pwd, suc_fn, err_fn) {            $.ajax({                url: "Servers/daySUDA.ashx",                type: "post",                cache: false,                async: true,                dataType: 'json',                //contentType: "application/json; charset=utf-8",                data: {                    "Paras": "ActionCode,login_name,pwd,operate_user_id",                    "ActionCode": "0x1000",                    "login_name": login_name,                    "pwd": pwd,                    "operate_user_id": _this.user_id                },                success: function (jsonData) {                    if (jsonData.Result > 0) {                        suc_fn(jsonData);                    }                    else if (err_fn != null) {                        err_fn(jsonData);                    }                    else {                        AlertInfo("请求数据时出现异常!");                    }                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    if (err_fn != null) {                        err_fn(textStatus);                    }                    else {                        AlertInfo("请求数据时出现异常!");                    }                }            });        }



恩,已上就是具体的调用方法啦,结果如下:



阅读全文
0 0
原创粉丝点击