1, 在多个线程中同时用Adapter更新一个DataTable:
tbReferTableAdapter tbAdapter = new tbReferTableAdapter();
tbAdapter.Update(dataSetRefer.tbRefer); //更新到数据库,tbRefer是datatable中的一张表。
遇到如下错误: throws DBConcurrencyException 违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。
在我写的程序中,是因为当用DataSet来更新数据库时,若DataSet对应数据库中数据被其他线程改变,引发DBConcurrencyException.
解决办法如下:
tbReferTableAdapter tbAdapter = new tbReferTableAdapter();
tbAdapter.Update(dataSetRefer.tbRefer); //更新到数据库,tbRefer是datatable中的一张表
tbAdapter.Fill(dataSetRefer.tbRefer); //把内存中的数据和数据库保持一致,解决问题!

本文探讨了在多线程环境中使用DataAdapter更新DataTable时遇到的DBConcurrencyException异常,该异常提示并发冲突导致UpdateCommand影响了预期的记录数。解决方法涉及处理并发控制以确保数据一致性。
最低0.47元/天 解锁文章
583

被折叠的 条评论
为什么被折叠?



