當我從sqldatareader讀取數據時出現錯誤「讀取器關閉時無法嘗試調用Read」。 我的代碼如下sqldatareader錯誤「當閱讀器關閉時,嘗試調用Read無效。」
顯然這是由using語句在ExecSqlDataReader越來越封閉
我希望能夠調用該方法,然後讀者使用另一個類中,有沒有什麼辦法解決這而不必循環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;
}
您正在關閉連接。而已。期。連接已關閉。您無法關閉連接,然後從中讀取。它已關閉! –