我有一个抽象 SqlCommand 的 ExecuteNonQuery() 和 ExecuteReader() 的数据库类。由于使用块包装了 Sqlconnection 和 SqlCommand,调用 CustomExecuteReader() 后 SqlDataReader 被关闭,因此我无法在业务层读取 SqlReaderResultSet。代码如下。谢谢大家的反馈。
public static SqlDataReader SqlReaderResultSet { get; set; }
public static SqlDataReader CustomExecuteReader(string storedProc)
{
using (var conn = new SqlConnection(ConnectionString))
{
var cmd = new SqlCommand(storedProc, conn) {CommandType = CommandType.StoredProcedure};
try
{
conn.Open();
SqlReaderResultSet = cmd.ExecuteReader();
}
catch (InvalidOperationException)
{
if (conn.State.Equals(ConnectionState.Closed))
conn.Open();
}
finally
{
conn.Close();
}
}
return SqlReaderResultSet;
}