离开.Net类型数据集很长一段时间后,我不得不处理一个遗留项目而且我已经犯了
Error: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records
尝试按ID加载单个记录,然后更新该记录中的单个字段。
答案 0 :(得分:0)
我首先排除了其他系统或用户肯定没有办法更新我的代码“下面”导致问题的记录。
然后我排除了数据类型和舍入不会导致问题,因为我理解不同系统如何处理浮点数舍入的细微差别可能会导致此报告的错误消息。
然后我排除了“可空”字段没有引起问题。
它实际上是什么,是我自己在存储过程中犯的错误。虽然它似乎返回了我加载类型化数据集所需的所有数据,但我没有包含主键字段,因此当我逐步执行代码时,主字段的值为“-1”。
我认为这会导致数据适配器出现问题。我很惊讶这个错误表现为并发问题。我想要一个更有用的信息,试图更新一个没有钥匙的记录来识别记录!
更正我的“select for ID”存储过程以返回ID字段以及所有更多有趣的字段,解决了在适配器上调用Update
方法时的问题。