问题是数据表将有10,000到50,000行,并且每次迭代时cmd.executenonquery触发效率都很低,并且需要的时间比它应该的长。
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的设置并加快速度?如果您需要更多代码,请告诉我...谢谢!
答案 0 :(得分:0)
错误处理的B / c我不能完全这样做,但我决定使用SQLBULK Copy