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

自己原来是负责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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值