我有2個SqlCommand,其中之一嵌套。爲什麼它不允許我發出第二個SqlCommand(我正在使用單獨的SQLCommand)?它給出錯誤「已經有一個與此命令關聯的打開的DataReader,必須先關閉」。 。如果我使用單獨的SqlConnection,那很好。不允許嵌套SQLCommand?
SqlCommand cmd = new SqlCommand(qry, cn);
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
....
try
{
SqlCommand cmd2 = new SqlCommand(qry2, cn);
cmd2.ExecuteNonQuery();
}
catch (Exception e)
{
// I get this error here
// System.Data; There is already an open DataReader associated with this Command which must be closed first.
}
}
您需要額外的連接實例才能爲同時查詢執行具有相同連接字符串的另一個查詢。由於在執行另一個查詢時可能無法停止DataReader,所以考慮將DataReader內容拉到DataTable中關閉第一個連接並在迭代DataTable內容時重新打開。 –