如截圖所示,我試圖將數據插入到表中。第一次迭代工作正常,但第二次迭代拋出錯誤/異常。不能使用c在循環中將數據插入到SQL Server表中
我的代碼有什麼問題?
以下是代碼。
SqlConnection sqlconn = new SqlConnection(sqlconnectionstring);
// sqlconn.Open();
string InsertData = "INSERT INTO AUStagAPITestData ([TestSuite], [TestCase],[Status], [Info], [Time], [IsArchived], [DateTime]) VALUES (@TestSuite, @TestCase, @Status, @Info, @Time, @IsArchived, @DateTime)";
SqlCommand Insertcmd = new SqlCommand(InsertData, sqlconn);
for (int j = 1; j < TDData.Length; j +=5)
{
sqlconn.Open();
string TestSuite = TDData[j];
string TestCase = TDData[j+1];
string Status = TDData[j + 2];
string Info = TDData[j + 3];
string Time = TDData[j + 4];
Insertcmd.Parameters.AddWithValue("@TestSuite", TestSuite);
Insertcmd.Parameters.AddWithValue("@TestCase", TestCase);
Insertcmd.Parameters.AddWithValue("@Status", Status);
Insertcmd.Parameters.AddWithValue("@Info", Info);
Insertcmd.Parameters.AddWithValue("@Time", Time);
Insertcmd.Parameters.AddWithValue("@IsArchived", "1");
Insertcmd.Parameters.AddWithValue("@DateTime", DateTime.Now);
Insertcmd.ExecuteNonQuery();
sqlconn.Close();
}
不要使用循環進行插入。改爲使用表值參數。 –
你應該看看[我們可以停止使用AddWithValue()了嗎?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/)並停止使用'.AddWithValue()' - 它可能會導致意想不到的和令人驚訝的結果... –