1. 程式人生 > >ADO.NET中的存儲過程封裝

ADO.NET中的存儲過程封裝

c# ado.net sql存儲過程

//獲取連接字符串
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中的存儲過程封裝