Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在事务中执行SQL更新批处理 我正在将excel电子表格加载到数据表中 针对数据运行验证活动以检查问题 如果所有验证都通过,我将遍历datatable的每一行,并使用参数执行一个UpdateTable存储过程 我需要将其作为事务b/c执行,我希望它是一个全有或全无上载,并在出现错误时回滚事务_C#_Sql Server_Vb.net - Fatal编程技术网

C# 在事务中执行SQL更新批处理 我正在将excel电子表格加载到数据表中 针对数据运行验证活动以检查问题 如果所有验证都通过,我将遍历datatable的每一行,并使用参数执行一个UpdateTable存储过程 我需要将其作为事务b/c执行,我希望它是一个全有或全无上载,并在出现错误时回滚事务

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

问题是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
            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