我正在編寫一個C#應用程序,它將更新SQL Server數據庫中的字段。我正在測試的當前算法只是從「狀態」字段中提取數據,將每個值存儲在ArrayList中,將其大寫,然後將其寫回數據庫。我有一個邏輯問題。SQL UPDATE循環非順序鍵
我將所有的值拉入ArrayList並將它們大寫。這工作正常。我現在有一個數組,例如有100個值(即,myArray[0]
-myArray[99]
)。然後我使用FOR
循環寫入值回數據庫:
for (int i = 0; i <= (myArray.Count - 1); i++)
{
SqlCommand myCommand =
new SqlCommand("UPDATE myList SET State = '" + recordArray[i].ToString() +
"' WHERE uniqueID = '" + (i + 1) + "'", dbConnection);
myCommand.ExecuteNonQuery();
}
我在上面的例子中使用「UNIQUEID」根據主鍵來放置這些值。但是,問題在於主鍵只是接近順序的;序列中有一些缺失的數字。因此,即使我有我需要的值的數量,並且它們在數組中按照正確的順序被推回到數據庫,但是一旦我在序列中遇到延遲,其餘數據就會被放置在錯誤的領域。我知道這是我的邏輯失誤,但我對如何確保每個單獨的價值被正確放置感到迷茫。
在此先感謝您的幫助。
+1 yup,你是對的 - 這段代碼非常糟糕 - 希望我可以多次提醒你的答案! –
非常感謝您的幫助。我確實在尋找正確的方法來做到這一點,因爲我知道我正在採用「哈克」路線,而且這種方法非常完美。 –
我有UPDATE命令現在工作。很明顯,問題是我不熟悉UPDATE語法。然而,您關於SQL處理的其他評論讓我更深入瞭解最佳實踐。再次感謝。 –