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 更新的字段名='更新内容',...如果多个字段可以使用逗号分隔。更新的关键是找到更新内容的规则和更新的过滤条件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)