C#执行SQL存储过程

 
  1.         /// 
  2.         /// 存储过程参数结构
  3.         /// 
  4.         public struct ProcParam
  5.         {
  6.             public string ParamName;
  7.             public string ParamValue;
  8.             public System.Data.SqlDbType ParamType;
  9.         }
  10.         /// 
  11.         /// 执行一个返回数据集的存储过程
  12.         /// 
  13.         /// 存储过程名称
  14.         /// 参数名称
  15.         /// 参数值
  16.         /// 数据连接串
  17.         /// 
  18.         public static System.Data.SqlClient.SqlDataReader ExecProcedure(string strProcName, System.Collections.ArrayList alParamName, System.Collections.ArrayList alParamValue, string constring)
  19.         {
  20.             System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(constring);
  21.             cn.Open();
  22.             System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
  23.             cmd.Connection = cn;
  24.             cmd.CommandType = System.Data.CommandType.StoredProcedure;
  25.             cmd.CommandTimeout = 9999;
  26.             cmd.CommandText = strProcName;
  27.             for (int i = 0; i < alParamName.Count; i++)
  28.             {
  29.                 System.Data.SqlClient.SqlParameter param = new System.Data.SqlClient.SqlParameter(alParamName[i].ToString(), alParamValue[i].ToString());
  30.                 cmd.Parameters.Add(param);
  31.             }
  32.             System.Data.SqlClient.SqlDataReader dr;
  33.             dr = cmd.ExecuteReader();
  34.             return dr;
  35.         }

 

应用示例

  1.             ArrayList paramName = new ArrayList();
  2.             ArrayList paramValue = new ArrayList();
  3.             paramName.Add("@booktype");
  4.             paramName.Add("@starttime");
  5.             paramName.Add("@endtime");
  6.             paramValue.Add("59,60");
  7.             paramValue.Add(startTime.Value.ToString());
  8.             paramValue.Add(endTime.Value.ToString());
  9.             SqlDataReader dr = ExecProcedure("cpub_count", paramName, paramValue, connStr);
  10.             while (dr.Read())
  11.             {
  12.                 richTextBox1.Text += "项目1:" + dr[0].ToString() + "/t项目2" + dr[1].ToString() + "/n";
  13.             }
  14.             dr.Close();

你可能感兴趣的:(C#入门学习)