【发布时间】:2009-11-03 14:50:40
【问题描述】:
我正在编写一个 C# 应用程序,它将更新 SQL Server 数据库中的字段。我正在测试的当前算法只是从“状态”字段中提取数据,将每个值存储在 ArrayList 中,将其大写,然后将其写回数据库。我的逻辑有问题。
我将所有值拉入 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”来根据主键放置这些值。但是,问题在于主键几乎是连续的;序列中有一些缺失的数字。因此,即使我有我需要的确切数量的值,并且它们在数组中以正确的顺序被推回数据库,一旦我在序列中达到一个间隔,其余的数据就会被放置在错误的领域。我知道这是我逻辑上的失误,但我不知道如何确保正确放置每个单独的值。
提前感谢您的帮助。
【问题讨论】:
标签: c# sql sql-server sql-update