.net开发中连接SQL SERVER数据库的问题
2017-07-05 17:33
225 查看
自己原来是负责javascript开发,但是最近这段时间打算自己做一个个人网站。
简单的表述一下吧,用到的技术方面大概是Html,css,javascript,用jq的库,没有使用到框架。
因为自己之前没有做过完整的项目,所以在调用数据局数据的时候不知道怎么下手,自己也在网上学习了一番各位大佬的资料,于是有了这篇笔记啦。
调用方法是ajax去调用C#写的ashx文件,通过ashx去连接sql server数据库.
以下数据库结构:
![](https://img-blog.csdn.net/20170705175626345?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvczEzMDM0ODEyMzU0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
以下是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("请求数据时出现异常!");
}
}
});
}
恩,已上就是具体的调用方法啦,结果如下:
简单的表述一下吧,用到的技术方面大概是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("请求数据时出现异常!");
}
}
});
}
恩,已上就是具体的调用方法啦,结果如下:
相关文章推荐
- 关于.net平台开发程序连接oracle数据库查询语句中包含汉字的问题
- 用.net 2003开发SmartPhone调试出现无法建立连接问题
- jsp开发连接sql server数据库问题
- .net开发网站连接sql server数据库
- .net开发连接Oracle数据库注意问题
- [web开发]通过asp连接sql server数据库
- 关于.net 2.0程序连接SQL Server 2K的问题
- Excel开发系列二 解决.net生成Excel文件速度问题的若干方案
- 基于Grove的.NET应用程序开发提示1--数据库主键设置问题
- Excel开发系列二 解决.net生成Excel文件速度问题的若干方案
- .Net数据库访问问题:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
- 关于PowerBuilder连接SQL Server数据库的一些问题
- .net Web程序开发遇到的问题
- .NET方向高级开发人员面试时应该事先考虑的问题
- 关于在VS2005开发环境下ACCESS数据库的连接相对路径问题
- 用SQL SERVER数据库连接RUBY ON RAILS解决乱码问题
- .net连接mysql中文乱码问题的解决
- 数据库与.net连接问题
- 用.net 2003开发Windows CE应用,解决与pocket pc通讯的问题
- 使用ASP开发项目时遇到的连接数据库的性能问题。