我使用TableAdapter
连接到我的数据库表。
当我执行Update
并且其他人更新了同一行时,我收到并发冲突错误。正如所料。
所以在这一点上,我给用户提供了保存选项或取消更改
的选项如果他们取消我可以只执行Fill
来获取数据的更新副本,但如果他们想要覆盖怎么办?如何实际强制保存数据覆盖数据库中保存的数据?
答案 0 :(得分:3)
如果您使用SQLCommandBuilder生成更新语句,则设置 CommandBuilder.ConflictOption = ConflictOption.OverwriteChanges; 然后再次执行Update()。
答案 1 :(得分:0)
右键单击表适配器,单击“在数据集设计器中编辑查询”。
在“数据集设计器”窗口中,选择“TableAdapter”并转到“属性”。
在属性中,展开Update语句,然后转到CommandText属性。在条件更新命令中,删除所有条件并仅保留主键列。例如:
UPDATE customer
SET column1 = @column1, column2 = @column2
WHERE pk_column = @pk_column
现在并发异常不再出现,因为此查询将仅基于主键覆盖数据。