C#开发之调用数据库存储过程
2012-07-25 18:38
239 查看
本例应用在WebService中,该WebService根据实际需要建立数据库连接,访问数据库,调用存储过程,得到结果。比如调用存储过程进行用户的验证登录。
存储过程详细见地址:/article/7962325.html
WebService的Web方法如下:
说明:
JiaoJingTongWebService是函数名称,调用该webservice时必须传递两个参数,一个是functionname,用来指示操作那个存储过程,xmlstring是传递的xml字符串格式的数据。该函数返回值string类型,0-2的取值分别表示操作成功,失败,网络问题。
DataProcessing方法用来处理该xml字符串数据,为存储过程参数做准备。
Function类如下:
说明:
dictionary用来准备存储过程的参数;
XMLStringParsing函数用来解析所有的xml字符串,解析的有用的东西添加到dictionary中。
GetServiceDatas方法用来建立数据连接并调用存储过程。
GetServiceDatas方法如下:
存储过程详细见地址:/article/7962325.html
WebService的Web方法如下:
[WebMethod] public string JiaoJingTongWebService(string functionName,string xmlString) { string s = "2"; try { Functions ff = new Functions(); s = ff.DataProcessing(functionName, xmlString); } catch(Exception e) { } return functionName+"_"+s; }
说明:
JiaoJingTongWebService是函数名称,调用该webservice时必须传递两个参数,一个是functionname,用来指示操作那个存储过程,xmlstring是传递的xml字符串格式的数据。该函数返回值string类型,0-2的取值分别表示操作成功,失败,网络问题。
DataProcessing方法用来处理该xml字符串数据,为存储过程参数做准备。
Function类如下:
public class Functions { Dictionary<string, string> dictionary ; GetDataFromDB getDatas ; string outputparameter; //客户端传递的数据整理 public string DataProcessing(string functionName,string xmlString){ dictionary = new Dictionary<string, string>(); getDatas = new GetDataFromDB(); dictionary = XMLStringParsing(xmlString); //调用存储过程方法 outputparameter= getDatas.GetServiceDatas(functionName, dictionary); return outputparameter; } //XML字符串解析 Dictionary<string,string> XMLStringParsing(string xml) { Dictionary<string, string> dic = new Dictionary<string, string>(); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNodeList xxList = doc.GetElementsByTagName("Element"); foreach(XmlNode xnode in xxList) { XmlNodeList childList = xnode.ChildNodes; foreach(XmlNode node in childList){ string nodeName = node.Name; switch(nodeName) { //用户基本信息 case "ID": dic.Add("@in_id", node.InnerText); break; case "UserName": dic.Add("@in_username", node.InnerText); break; case "Password": dic.Add("@in_password", node.InnerText); break; case "OldPassword": dic.Add("@in_oldpassword", node.InnerText); break; } } } return dic; }
说明:
dictionary用来准备存储过程的参数;
XMLStringParsing函数用来解析所有的xml字符串,解析的有用的东西添加到dictionary中。
GetServiceDatas方法用来建立数据连接并调用存储过程。
GetServiceDatas方法如下:
public string GetServiceDatas(string functionName,Dictionary<string,string> dic){ //用户登录数据库连接、Windows登录连接 //string DBConnStr = "uid=MARTIN; password=; Database=JiaoJingTong;Server=MARTIN;Connect Timeout=30"; string DBConnStr = "Database=JiaoJingTong;Server=MARTIN;Integrated Security=True; Connect Timeout=30"; SqlConnection myConnection = new SqlConnection(DBConnStr); if(myConnection.State != ConnectionState.Open) { myConnection.Open(); } //调用数据库的存储过程 SqlCommand myCommand = new SqlCommand(functionName, myConnection); myCommand.CommandType = CommandType.StoredProcedure; //添加输入查询参数、赋予值 foreach(var item in dic) { string k = item.Key.ToString(); string v = item.Value.ToString(); myCommand.Parameters.Add(k, SqlDbType.VarChar); myCommand.Parameters[k].Value = v; } //添加输出参数 myCommand.Parameters.Add("@out_parameter", SqlDbType.Int); myCommand.Parameters["@out_parameter"].Direction = ParameterDirection.Output; SqlDataAdapter DataAdapter = new SqlDataAdapter(); DataSet MyDataSet = new DataSet(); //myCommand.ExecuteNonQuery(); DataAdapter.SelectCommand = myCommand; if(MyDataSet != null) { DataAdapter.Fill(MyDataSet, "table"); } //得到存储过程输出参数 string out_parameter = myCommand.Parameters["@out_parameter"].Value.ToString(); if(myConnection.State == ConnectionState.Open) { myConnection.Close(); } return out_parameter; }
相关文章推荐
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- C# 数据库操作类(存储过程)及调用方法
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- C# 数据库操作类(存储过程)及调用方法
- MSSQLSERVER数据库- C#里调用存储过程,多参数查询,个人记录
- SQL Server2012 创建数据库存储过程和VS2015 C#调用自己的存储过程
- gsoap调用C#开发的WebService
- 用C#开发的对象数据库应用范例
- Visual C# 2008+SQL Server 2005 数据库与网络开发――3.1.3 C# 2008和.NET Framework 3.5的关系
- 存储过程调用C#编写的DLL文件
- JAVA调用数据库存储过程
- C# 调用存储过程
- C#如何调用存储过程
- C#调用存储过程通用类3
- C#中调用输入输出参数的存储过程
- C# 调用带有输出参数的分页存储过程
- 我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
- ADO.NET(c#.net)数据库开发总结
- c#开发数据库考试题1