SqlCommandBuilder.GetInsertCommand();抛出异常

问题描述 投票:0回答:1
打电话时出现以下异常

SqlCommandBuilder.GetInsertCommand()


System.InvalidOperationException:'当分配给命令的连接处于挂起的本地事务中时,ExecuteReader 要求该命令具有事务。命令的 Transaction 属性尚未初始化。'

我在 SqlCommandBuilder.GetInsertCommand() 之前调用 SqlConnection.BeginTrans()

c# .net datatable ado.net sqldataadapter
1个回答
0
投票
我通过将

SqlTransaciton

 分配给 
SqlDataAdapter.SelectCommand
 解决了这个问题

using (SqlCommandBuilder builder = new SqlCommandBuilder(_adapter)) { _adapter.SelectCommand.Transaction = Database.transaction; // This fix problem _adapter.InsertCommand = builder.GetInsertCommand(); // No exception now _adapter.UpdateCommand = builder.GetUpdateCommand(); // No exception now _adapter.DeleteCommand = builder.GetDeleteCommand(); // No exception now _adapter.InsertCommand.Transaction = Database.transaction; _adapter.UpdateCommand.Transaction = Database.transaction; _adapter.DeleteCommand.Transaction = Database.transaction; _adapter.Update(this); }
    
© www.soinside.com 2019 - 2024. All rights reserved.