첫 번째 연결에서 많은 데이터 (수천 개의 행)가 반환되는 다음 코드 (여기서는 가독성을 위해 가독성이 있음)가 있습니다. ,"리더가 닫힐 때 Read 호출을 잘못 시도했습니다."
[InvalidOperationException: Invalid attempt to call Read when reader is closed.]
System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) +640
System.Data.SqlClient.SqlDataReader.Read() +9
잘 작동 개발 환경에서 : SqlDataReader 개체는 그들에게 reader.Read()
하나 하나를 읽은 다음 새 값으로 각 행을 업데이트 할 새 연결을 엽니 다
using (SqlConnection conn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand("sp1", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@param1", param1);
cmd.Connection.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
try
{
string hash= utils.SHA256.Hashing((string)reader["firstRow"], saltValue);
using (SqlConnection conn2 = new SqlConnection(connString))
using (SqlCommand cmd2 = new SqlCommand("sp2", conn2))
{
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.Parameters.AddWithValue("@param1", param1);
cmd2.Parameters.AddWithValue("@param2", param2);
cmd2.Connection.Open();
cmd2.ExecuteNonQuery();
}
}
catch (SqlException ex)
{
//something
}
}
}
}
를하지만 오류가 발생합니다 하지만 여기에는 몇 백 줄 밖에 없습니다. 그것은 즉시 오류를 던져 버리기 때문에 어떤 종류의 시간 초과처럼 보이지는 않습니다.하지만 헤이 - 잘 모르겠습니다 ...
어떤 라인이 실패합니까? – CodingGorilla
리더에서 읽기를 호출 할 때. while (reader.Read()) – Thomas
첫 번째 SPROC에서 SQL로이 작업을 수행 할 수 있습니까? – MikeSmithDev