【发布时间】:2014-01-29 21:54:03
【问题描述】:
我环顾四周寻找一个类似的问题(我确定某处有一个)但找不到。
我有一个 ID 列表,对于每个 ID,我需要将该 ID 行的另一列更新为相同的字符串。
基本上,我想要这样的东西:
List<int> uniqueIDs;
UPDATE my_table
SET certainColumn = "foo bar"
WHERE uniqueID = uniqueIDs[0]
OR uniqueID = uniqueIDs[1]
...
OR uniqueID = uniqueID[uniqueIDs.Length-1]
我知道这可以通过将其包围在 for/foreach 循环中来实现,但我想知道是否有更好的方法来完成这项工作,可能在一个数据库连接中?
非常感谢任何帮助。
【问题讨论】:
-
您的示例有一行 C#,后跟一条 SQL 语句 - 您是尝试在 C# 中还是在 SQL 中实现这一点?或者您想弄清楚如何一次性将列表传递给 SQL?
-
好问题。我主要只是将两者结合起来以更好地展示我的最终目标。我想在 C# 中制定一些 sql 更新然后执行它。所以我猜是后者!
-
您会为多个唯一ID 更新
certainColumn吗?你有一个他们唯一ID的列表??如果我错了,请纠正我?? -
我的建议是混合方法。查看 SQL 2008 或更高版本中的表值参数。您可以从 c# 传递一个表(SQL 中自定义的表类型),然后在 WHERE 子句中使用一个简单的 IN 子句,封装在一个存储过程中。
-
@M.Ali 你是对的。多行需要将某些列更新为“foo bar”。
标签: c# sql sql-server