我有一个包含SqlDataReader
的基类,该基类使用存储过程获取数据,这非常有用,直到我返回数据读取器备份说连接为空。
有人有什么想法吗?这是我的代码:
public SqlDataReader GetDataReader(string QueryName, SqlParameter[] Params)
{
SqlConnection conn = new SqlConnection(this.ConnectionString);
SqlDataReader reader;
using (conn)
{
SqlCommand command = new SqlCommand(QueryName,conn);
command.CommandType = CommandType.StoredProcedure;
if(Params !=null)
command.Parameters.Add(Params);
conn.Open();
reader = command.ExecuteReader();
}
// conn.Close();
return reader;
}
如果您注意到,我已关闭部分的注释,这是我试图使其正常工作,出于某种原因,当将数据读取器备份返回时,它设置为关闭?
谢谢!
最佳答案
您要执行以下操作:
SqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection)
并且不要关闭连接。关闭数据读取器时,如果使用上面的代码,它将为您关闭。
关于c# - 我的基类中的C#SqlDatareader返回空连接错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8119172/