gpt4 book ai didi

c# - 数据集更新与 SQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:01 25 4
gpt4 key购买 nike

我有这样一种情况,我每分钟都需要从 SQL Server 处理它获取大约 200 条记录,并使用 1 表示成功更新状态字段,未更改/0 表示 200 条记录失败,然后写回数据库。在这种情况下,我应该通过 .net 方法更改数据表,然后在循环结束时根据处理状态调用更新方法。

或者我应该采用直接的方法来制作这样的循环

String sql = "update customer set status = 1 where id in ("
while records in dataset
sql = sql + dataset.getId + ","
end while
and the execute sql;

哪种方法效率更高?我真正想知道的是,如果我只更改 dataTable 中的一列并进行更新,那么在后端将如何执行该查询?每行只有一个 sql 还是多个。如果它是多个,那么我应该使用旧的 sql 方法还是有其他建议的方法。

最佳答案

您的第二种方法将是高效的,因为它将作为单个查询执行。但是 yourDataAdapter.Update(datatable) 将一次执行单行,因此将执行 200 个查询(最坏情况)。

检查这个 http://msdn.microsoft.com/en-us/library/system.data.common.dataadapter.update(v=vs.80).aspx

它说:

为名为“Table”的 DataTable 中指定 DataSet 中的每个插入、更新或删除行调用相应的 INSERT、UPDATE 或 DELETE 语句。

注意:对于每个插入、更新或删除的行

我在 2 年前测试过这个 dataAdapter.Update,它逐行执行查询。

但是尝试在数据库端使用这种更新逻辑,例如...

更新c
设置状态 = 1
来自客户作为 c
inner join yourOtherTable as t on c.id = t.id
哪里....

关于c# - 数据集更新与 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com