我有以下包装器方法,只要我需要使用SqlDataReader
执行存储过程,它就能很好地工作。
我现在想稍微修改一下,以便处理另外两种情况:
ExecuteNonQuery()
ExecuteNonQuery()
,但也会读取输入/输出参数的值。此参数可以是任何一个输入参数,其类型可以是GUID,int
,DateTime
或字符串。如何修改此方法以便我也可以在这两种情况下使用它?
public static void ExecuteStoredProc(string procedureName, Action<SqlCommand> setParametersAction, Action<SqlDataReader> handleReaderAction)
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand(procedureName, conn);
cmd.CommandType = CommandType.StoredProcedure;
if (setParametersAction != null)
setParametersAction(cmd);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (handleReaderAction != null)
{
handleReaderAction(reader);
}
}
}