SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
//..........
cmd.CommandText = "SELECT * FROM TempQn WHERE creatorId= '" +
Session["administratorID"].ToString() + "'";
dr = cmd.ExecuteReader();
while (dr.Read())
{
int ids = Int32.Parse(dr["QuestionID"].ToString());
cmd.CommandText = " INSERT INTO Answers (QuestionId,Answer) Select c.QnId, c.Answer From TempAns c Where c.Id = " + ids + " ";
cmd.ExecuteNonQuery(); //this line
}
dr.Close();
的錯誤是:
已經沒有與此命令必須先關閉相關聯的打開的DataReader。
什麼樣的命令應該取代cmd.ExecuteNonQuery();
?
首先,使用字符串連接構建sql查詢是一種不好的做法,因爲它可能導致安全漏洞。改用SqlParameters。 – 2011-12-14 09:19:00
第二,你不能在單個sql查詢中做你在做什麼嗎? – 2011-12-14 09:19:40
我想你打開另一個datareader代替.......? – 2011-12-14 09:20:11