c# - 如何通过C#代码在Sql中进行批量更新

标签 c# sql

我想像下面这样更新多行

update mytable set s_id = {0} where id = {1}

(这里的s_id是根据一些复杂的逻辑求值的)。
出于性能原因,更新应该分批进行。有没有办法批量更新语句并通过单个执行语句执行批处理?我知道在 JAVA 中我们可以通过 JDBC 做到这一点。 C#中有类似的方法吗?

提前致谢

最佳答案

是的,您可以使用 SqlDataAdapter .

SqlDataAdapter 有 InsertCommandUpdateCommand允许您分别指定用于将新行插入数据库的 SQLCommand 和用于更新数据库中的行的 SqlCommand 的属性。

然后您可以将 DataTable 传递给 Update数据适配器的方法,它会将语句批量发送到服务器 - 对于 DataTable 中的新行,它执行 INSERT 命令,对于修改的行,它执行 UPDATE 命令。

您可以使用 UpdateBatchSize 定义批量大小属性(property)。

这种方法允许您处理大量数据,并允许您以不同的方式很好地处理错误,即如果特定更新遇到错误,您可以告诉它不要抛出异常但继续通过设置 ContinueUpdateOnError 与其余更新属性(property)。

关于c# - 如何通过C#代码在Sql中进行批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327081/

相关文章:

c# - 限制用户只能填写一次表格

c# - 从代码后面将变量传递给 javascript 函数

mysql - 使用外键创建表时遇到问题

mysql - 查询中列的顺序重要吗?

c# - double 型属性(类)和 double 型字段(SQL 查询)中 float 表示的差异

sql - 如何为 db 中的所有表设置数据库审计规范

c# - 从 Application Insights 获取页面 View 数据

c# - 我可以创建实体,但无法编辑实体

C# 进程不接受我的参数

MySQL使用连续数插入