C# 在事务中执行SQL更新批处理 我正在将excel电子表格加载到数据表中 针对数据运行验证活动以检查问题 如果所有验证都通过,我将遍历datatable的每一行,并使用参数执行一个UpdateTable存储过程 我需要将其作为事务b/c执行,我希望它是一个全有或全无上载,并在出现错误时回滚事务
问题是datatable将有10000到50000行,并且每次迭代时通过cmd.executenonquery触发都是低效的,所需时间比应该的要长C# 在事务中执行SQL更新批处理 我正在将excel电子表格加载到数据表中 针对数据运行验证活动以检查问题 如果所有验证都通过,我将遍历datatable的每一行,并使用参数执行一个UpdateTable存储过程 我需要将其作为事务b/c执行,我希望它是一个全有或全无上载,并在出现错误时回滚事务,c#,sql-server,vb.net,C#,Sql Server,Vb.net,问题是datatable将有10000到50000行,并且每次迭代时通过cmd.executenonquery触发都是低效的,所需时间比应该的要长 Dim db As New PGS.DBConnection Try db.BeginTransaction() For Each row As DataRow In dt.Rows Dim ParameterList(24) As SqlParameter
Dim db As New PGS.DBConnection
Try
db.BeginTransaction()
For Each row As DataRow In dt.Rows
Dim ParameterList(24) As SqlParameter
ParameterList(0) = New SqlParameter("ProjectID", ProjectID)
ParameterList(1) = New SqlParameter("Discipline", row("Disc"))
.
.
.
ParameterList(24) = New SqlParameter("User", username)
db.ExecuteQuery("EstimateInsert", ParameterList)
Next
db.CommitTransaction()
Return "success"
Catch ex As Exception
db.RollbackTranscation()
Dim db2 As New PGS.DBConnection
db2.InsertError(ex.Message, ex.StackTrace, ex.Source, "Excel Estimate Processing", HttpContext.Current.User.Identity.Name)
Return ex.Message
End Try
DBconnection对象处理使用函数打开、执行和关闭sql中的所有内容。在本例中,给它一个存储过程名和一个SQL参数数组
我不需要在这个框架中安装补丁,如果我需要重写整个框架,这很好
有没有办法运行一个批量为500的集合并加快它的速度?如果你需要更多的代码,请告诉我…谢谢 B/c错误处理我不能完全这样做,但我决定使用SQLBULK Copy我会说,尝试临时表或仅为此操作创建静态表,然后从该表到目标表一次完成!因此,请尝试将此操作分为两个步骤。B/c错误处理我不能完全像这样做,但我决定使用SQLBULK Copy