ADO.NET中的存儲過程封裝
//獲取連接字符串 private static readonly string ConnectionString=ConfigurationManager.["connectionString"].ConnectionString;
//執行增刪改的存儲過程
public static int ExecuteNonQueryByProcedure(string procedureName, params SqlParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(DbConnectionString))//創建連接
using (SqlCommand cmd = new SqlCommand(procedureName, con))//創建命令
{
if (parameters != null && parameters.Length > 0)
{
cmd.Parameters.AddRange(parameters);//批量添加參數
}
//【重要】 設置當前命令為存儲過程
cmd.CommandType = CommandType.StoredProcedure;
con.Open();//打開連接
return cmd.ExecuteNonQuery();//執行增刪改
}
}
//返回首行首列的存儲過程
public static object ExecuteScalarByProcedure(string procedureName, params SqlParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(DbConnectionString))//創建連接
using (SqlCommand cmd = new SqlCommand(procedureName, con))//創建命令
{
if (parameters != null && parameters.Length > 0)
{
cmd.Parameters.AddRange(parameters);//批量添加參數
}
//【重要】 設置當前命令為存儲過程
cmd.CommandType = CommandType.StoredProcedure;
con.Open();//打開連接
return cmd.ExecuteScalar();//返回首行首列
}
}
//逐行讀取數據的存儲過程
public static SqlDataReader ExecuteReaderByProcedure(string procedureName, params SqlParameter[] parameters)
{
SqlConnection con = new SqlConnection(DbConnectionString);//創建連接
using (SqlCommand cmd = new SqlCommand(procedureName, con))//創建命令
{
if (parameters != null && parameters.Length > 0)
{
cmd.Parameters.AddRange(parameters);//批量添加參數
}
//【重要】 設置當前命令為存儲過程
cmd.CommandType = CommandType.StoredProcedure;
con.Open();//打開連接
return cmd.ExecuteReader(CommandBehavior.CloseConnection);//返回SqlDataReader 逐行讀取 SqlConnection不能在這裏釋放
}
}
//返回DataSet的存儲過程
public static DataSet ExecuteDataSetByProcedure(string procedureName, params SqlParameter[] parameters)
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(DbConnectionString))//創建連接
using (SqlDataAdapter ada = new SqlDataAdapter(procedureName, con))//創建適配器
{
if (parameters != null && parameters.Length > 0)
{
ada.SelectCommand.Parameters.AddRange(parameters);//批量添加參數
}
ada.SelectCommand.CommandType = CommandType.StoredProcedure;
ada.Fill(ds);//將查詢出的數據填充到DataSet中
}
return ds;
}
本文出自 “戀上你的微笑” 博客,謝絕轉載!
ADO.NET中的存儲過程封裝