sqldatareader에서 데이터를 읽을 때 "리더가 닫혀있을 때 Read를 호출하지 못했습니다."오류가 발생합니다. 내 코드는 분명히 이것은 ExecSqlDataReader에 using 문에 의해 폐쇄지고sqldatareader 오류 "판독기가 닫힌 경우 읽기를 잘못했습니다."
이하
이 둥근있는 방법이 내가이 메소드를 호출 한 후 다른 클래스에 독자를 사용할 수 있도록하고 싶습니다이 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;
}
연결을 닫는 중입니다. 그게 전부 야. 기간. 연결이 닫힙니다. 연결을 닫은 다음 읽을 수는 없습니다. 닫혔다! –