C#怎么快速批量更新数据库?

C#怎么快速批量更新数据库?,第1张

一般用SqlDataAdapter批量更新就行了,你可以参照下面的代码,另一个可以参考的是这个

http://clingingboy.cnblogs.com/archive/2006/04/29/389039.html

下面代码一次是5000个,具体在你那数值是多少可以测试一下

/// <summary>

/// 批量更新数据(每批次5000)

/// </summary>

/// <param name="connString">数据库链接字符串</param>

/// <param name="table"></param>

public static void Update(string connString, DataTable table)

{

SqlConnection conn = new SqlConnection(connString)

SqlCommand comm = conn.CreateCommand()

comm.CommandTimeout = _CommandTimeOut

comm.CommandType = CommandType.Text

SqlDataAdapter adapter = new SqlDataAdapter(comm)

SqlCommandBuilder commandBulider = new SqlCommandBuilder(adapter)

commandBulider.ConflictOption = ConflictOption.OverwriteChanges

try

{

conn.Open()

//设置批量更新的每次处理条数

adapter.UpdateBatchSize = 5000

adapter.SelectCommand.Transaction = conn.BeginTransaction()/////////////////开始事务

if (table.ExtendedProperties["SQL"] != null)

{

adapter.SelectCommand.CommandText = table.ExtendedProperties["SQL"].ToString()

}

adapter.Update(table)

adapter.SelectCommand.Transaction.Commit()/////提交事务

}

catch (Exception ex)

{

if (adapter.SelectCommand != null &&adapter.SelectCommand.Transaction != null)

{

adapter.SelectCommand.Transaction.Rollback()

}

throw ex

}

finally

{

conn.Close()

conn.Dispose()

}

}

可以,下面的代码可以批量更新access数据库表

SQL = "INSERT INTO [数据库表名] SELECT * FROM [Excel 8.0DATABASE=" &_

ThisWorkbook.FullName &"HDR=YESIMEX=1].[Sheet1$]"

首先更新的内容是不是一样的?有什么更新规则吗?

如果更新的内容是一样的直接写一个sql语句全部更新掉就好了

比如:update 表名 set 更新字段1='需要被更新成的值',更新字段2='需要被更新成的值' where 更新的过滤条件

总体的语法是关键字update 表名 set 更新的字段名='更新内容',...如果多个字段可以使用逗号分隔。更新的关键是找到更新内容的规则和更新的过滤条件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存