关键词搜索

源码搜索 ×
×

C# 调用存储过程

发布2015-01-24浏览1951次

详情内容

下面以调用:Sql Server 分页存储过程为例

调用代码如下:

  1. string MyConn = "server=数据库服务器Ip;uid=数据库用户名;pwd=密码;database=数据库名称;Trusted_Connection=no";
  2. SqlConnection MyConnection = new SqlConnection(MyConn);
  3. SqlDataAdapter da = new SqlDataAdapter();
  4. da.SelectCommand = new SqlCommand();
  5. da.SelectCommand.Connection = MyConnection;
  6. da.SelectCommand.CommandText = "proc_ListPageInt";
  7. da.SelectCommand.CommandType = CommandType.StoredProcedure;
  8. IDataParameter[] parameters = {
  9. new SqlParameter("@tblName", SqlDbType.NVarChar) ,
  10. new SqlParameter("@fldName", SqlDbType.NVarChar) ,
  11. new SqlParameter("@pageSize", SqlDbType.Int) ,
  12. new SqlParameter("@page", SqlDbType.Int) ,
  13. new SqlParameter("@pageCount", SqlDbType.Int) ,
  14. new SqlParameter("@Counts", SqlDbType.Int) ,
  15. new SqlParameter("@fldSort", SqlDbType.NVarChar) ,
  16. new SqlParameter("@Sort", SqlDbType.Bit) ,
  17. new SqlParameter("@strCondition", SqlDbType.NVarChar) ,
  18. new SqlParameter("@ID", SqlDbType.NVarChar) ,
  19. new SqlParameter("@Dist", SqlDbType.Bit)
  20. };
  21. // 设置参数类型
  22. parameters[0].Direction = ParameterDirection.Input;// 设置为输入参数
  23. parameters[0].Value = "sysobjects";
  24. parameters[1].Direction = ParameterDirection.Input;// 设置为输入参数
  25. parameters[1].Value = "*";
  26. parameters[2].Direction = ParameterDirection.Input;// 设置为输入参数
  27. parameters[2].Value =20;
  28. parameters[3].Direction = ParameterDirection.Input;// 设置为输入参数
  29. parameters[3].Value = 1;
  30. parameters[4].Direction = ParameterDirection.Output;// 设置为输出参数
  31. parameters[5].Direction = ParameterDirection.Output;// 设置为输出参数
  32. parameters[6].Direction = ParameterDirection.Input;// 设置为输入参数
  33. parameters[6].Value = "id";
  34. parameters[7].Direction = ParameterDirection.Input;// 设置为输入参数
  35. parameters[7].Value = 0;
  36. parameters[8].Direction = ParameterDirection.Input;// 设置为输入参数
  37. parameters[8].Value = "";
  38. parameters[9].Direction = ParameterDirection.Input;// 设置为输入参数
  39. parameters[9].Value = "id";
  40. parameters[10].Direction = ParameterDirection.Input;// 设置为输入参数
  41. parameters[10].Value =0;
  42. da.SelectCommand.Parameters.Add(parameters[0]);
  43. da.SelectCommand.Parameters.Add(parameters[1]);
  44. da.SelectCommand.Parameters.Add(parameters[2]);
  45. da.SelectCommand.Parameters.Add(parameters[3]);
  46. da.SelectCommand.Parameters.Add(parameters[4]);
  47. da.SelectCommand.Parameters.Add(parameters[5]);
  48. da.SelectCommand.Parameters.Add(parameters[6]);
  49. da.SelectCommand.Parameters.Add(parameters[7]);
  50. da.SelectCommand.Parameters.Add(parameters[8]);
  51. da.SelectCommand.Parameters.Add(parameters[9]);
  52. da.SelectCommand.Parameters.Add(parameters[10]);
  53. MyConnection.Open();

调用存储过程的东东已经搞定了,那么怎么获取dataset呢?

方法一:

  1. SqlDataAdapter dp = new SqlDataAdapter(da.SelectCommand);
  2. DataSet ds = new DataSet();
  3. dp.Fill(ds);

方法二:

  1. SqlDataReader reader = da.SelectCommand.ExecuteReader();//读取数据
  2. DataSet ds = this.ConvertDataReaderToDataSet(reader);
  3. MyConnection.Close();

执行结果如下:


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

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

比如获取pageCount,代码如下:

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

小注

DataReader转DataSet方法

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载