博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 调用存储过程
阅读量:7052 次
发布时间:2019-06-28

本文共 3576 字,大约阅读时间需要 11 分钟。

下面以调用:为例

调用代码如下:

string MyConn = "server=数据库服务器Ip;uid=数据库用户名;pwd=密码;database=数据库名称;Trusted_Connection=no";            SqlConnection MyConnection = new SqlConnection(MyConn);             SqlDataAdapter da = new SqlDataAdapter();            da.SelectCommand = new SqlCommand();            da.SelectCommand.Connection = MyConnection;            da.SelectCommand.CommandText = "proc_ListPageInt";            da.SelectCommand.CommandType = CommandType.StoredProcedure;                      IDataParameter[] parameters = {                  new SqlParameter("@tblName", SqlDbType.NVarChar) ,                 new SqlParameter("@fldName", SqlDbType.NVarChar) ,                  new SqlParameter("@pageSize", SqlDbType.Int) ,                  new SqlParameter("@page", SqlDbType.Int) ,                  new SqlParameter("@pageCount", SqlDbType.Int) ,                  new SqlParameter("@Counts", SqlDbType.Int) ,                  new SqlParameter("@fldSort", SqlDbType.NVarChar) ,                  new SqlParameter("@Sort", SqlDbType.Bit) ,                  new SqlParameter("@strCondition", SqlDbType.NVarChar) ,                  new SqlParameter("@ID", SqlDbType.NVarChar) ,                  new SqlParameter("@Dist", SqlDbType.Bit)              };            // 设置参数类型             parameters[0].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[0].Value = "sysobjects";            parameters[1].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[1].Value = "*";            parameters[2].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[2].Value =20;            parameters[3].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[3].Value = 1;            parameters[4].Direction = ParameterDirection.Output;// 设置为输出参数            parameters[5].Direction = ParameterDirection.Output;// 设置为输出参数            parameters[6].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[6].Value = "id";            parameters[7].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[7].Value = 0;            parameters[8].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[8].Value = "";            parameters[9].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[9].Value = "id";            parameters[10].Direction = ParameterDirection.Input;// 设置为输入参数            parameters[10].Value =0;            da.SelectCommand.Parameters.Add(parameters[0]);            da.SelectCommand.Parameters.Add(parameters[1]);            da.SelectCommand.Parameters.Add(parameters[2]);            da.SelectCommand.Parameters.Add(parameters[3]);            da.SelectCommand.Parameters.Add(parameters[4]);            da.SelectCommand.Parameters.Add(parameters[5]);            da.SelectCommand.Parameters.Add(parameters[6]);            da.SelectCommand.Parameters.Add(parameters[7]);            da.SelectCommand.Parameters.Add(parameters[8]);            da.SelectCommand.Parameters.Add(parameters[9]);            da.SelectCommand.Parameters.Add(parameters[10]);            MyConnection.Open();
调用存储过程的东东已经搞定了,那么怎么获取dataset呢?

方法一:

SqlDataAdapter dp = new SqlDataAdapter(da.SelectCommand);            DataSet ds = new DataSet();            dp.Fill(ds);
方法二:

SqlDataReader reader = da.SelectCommand.ExecuteReader();//读取数据             DataSet ds = this.ConvertDataReaderToDataSet(reader);            MyConnection.Close();
执行结果如下:

与在数据库中执行的结果一致。

那么新的问题来了,如果获取存储过程的返回参数呢?

比如获取pageCount,代码如下:

int pageCount = int.Parse(da.SelectCommand.Parameters["@pageCount"].Value.ToString());

小注

你可能感兴趣的文章
大中型网站集群架构企业级高标准全自动实战项目征集
查看>>
7.5 TableLayout布局详解
查看>>
【虚拟化实战】存储设计之二LUN Sizing
查看>>
SCCM2012系列之八,SCCM2012客户机发现
查看>>
禁用和删除Exchange邮箱深入探讨
查看>>
QQ群排名自动吸粉,同样是玩群,为什么他们这么牛?
查看>>
nagios监控web/mysql多角度实战分享(三)
查看>>
互联网公司的项目经理:别轻易脚踩两只船
查看>>
《统一沟通-微软-实战》-7-配置-4-未分配号码的通知
查看>>
【DevOps】从理念到实施
查看>>
MySQL数据库CPU飙升紧急处理方法
查看>>
cocos2d-x一些核心概念介绍
查看>>
SCCM2012 R2实战系列之五:发现方法
查看>>
Windows10-AzureAD的支持,云的落地
查看>>
手把手教你使用ECharts绘制可视化图表
查看>>
Tomcat端口被占用解决方法(不用重启)
查看>>
使用 TS Web Access 在网站上访问该程序的链接
查看>>
什么是你的核心竞争力之五—变化与坚持
查看>>
一个存储交流的报告——闪存存储系统设计
查看>>
Windows下安装Resin及配置详解与发布应用
查看>>