我正在使用DataAdapter并且我很好地更新了我的数据,但是当我使用UpdateBatchSize属性时,我得到了一个例外:"并发冲突:批量命令影响了预期的2条记录中的0条。&#34 ; ???
以下代码是我的DAL的一部分
myAdapter.InsertCommand = InsertCmd();
myAdapter.InsertCommand.UpdatedRowSource = System.Data.UpdateRowSource.None;
myAdapter.DeleteCommand = DeleteCmd();
myAdapter.DeleteCommand.UpdatedRowSource = System.Data.UpdateRowSource.None;
myAdapter.UpdateCommand = UpdateCmd();
myAdapter.UpdateCommand.UpdatedRowSource = System.Data.UpdateRowSource.None;
myAdapter.SelectCommand.Connection = myConnection.conn;
myAdapter.InsertCommand.Connection = myConnection.conn;
myAdapter.UpdateCommand.Connection = myConnection.conn;
myAdapter.DeleteCommand.Connection = myConnection.conn;
myAdapter.AcceptChangesDuringUpdate = false;
myAdapter.UpdateBatchSize = 2;
try
{
myAdapter.Update(dt.GetChanges());
}
catch
{
throw;
}
答案 0 :(得分:0)
我在搜索后得到的结果是,您不能将Adapter UpdateBatchSize属性与SQL命令提供的optimitstic并发一起使用,由于时间戳列的大小或每列的并发检查,命令将失败,因此SQL命令会非常大,所以你无法获得所有东西。
如果您想使用UpdateBatchSize来最小化服务器行程,您必须在sqlcommand或SqlAdapter中提供的并发选项中删除timestamp列检查