C#开发之调用数据库存储过程
来源:互联网 发布:淘宝促销模块代码 编辑:程序博客网 时间:2024/05/02 23:10
本例应用在WebService中,该WebService根据实际需要建立数据库连接,访问数据库,调用存储过程,得到结果。比如调用存储过程进行用户的验证登录。
存储过程详细见地址:http://blog.csdn.net/whuarui2010/article/details/7768061
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; }
- C#开发之调用数据库存储过程
- c#开发之调用Oracle存储过程
- 数据库学习四:c#调用存储过程
- C# 调用Oracle数据库存储过程
- C#数据库(c#通过调用存储过程返回表)
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- 黑马程序员--SQL常用语句
- Liunux——rpm命令 与 MprBox安装
- 张小龙谈移动互联网产品,最后一次公开演讲,8小时30分
- Win7 编译安装log4cxx c++日志类
- C#开发之调用数据库存储过程
- hdu 1875 水过~
- Ubuntu下编写ds18b20驱动程序
- LightOJ 1237 KM求最大匹配最小匹配
- Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
- 数据库的基础知识以及创建数据库
- The following DIMM modules(s) did not pass CPU memory test Please remove the modules(s)then plug aga
- OpenGL ES之glPushMatrix, glPopMatrix函数
- Building FFmpeg for iPhone