当我从 sqldatareader 读取数据时,我收到错误“读取器关闭时调用读取的尝试无效”。我的代码如下
显然,这已被 ExecSqlDataReader 中的 using 语句关闭
我希望能够调用此方法,然后在另一个类中使用阅读器,有没有办法绕过这个而不必循环通过 ExecSqlDataReader 方法中的 SqlDataReader ?
希望这是有道理的
谢谢
代码:
SqlDataReader reader = data.ExecSqlDataReader(1);
while (reader.Read())
{
.....
}
public SqlDataReader ExecSqlDataReader(int queryType = 0)
{
using (var conn = new SqlConnection(this.ConnectionString))
{
try
{
PrepareCommandForExecution(conn, queryType);
return _cmd.ExecuteReader();
}
finally
{
_cmd.Connection.Close();
}
}
}
private SqlCommand PrepareCommandForExecution(SqlConnection conn, int sqlType = 0)
{
_cmd.Connection = conn;
switch (sqlType)
{
case 0:
_cmd.CommandType = CommandType.StoredProcedure;
break;
case 1:
_cmd.CommandType = CommandType.Text;
_cmd.CommandText = _tSqltext;
break;
case 2:
_cmd.CommandType = CommandType.TableDirect;
break;
}
_cmd.CommandTimeout = this.CommandTimeout;
_cmd.Connection.Open();
return _cmd;
}