【问题标题】:Error: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records错误:并发冲突:UpdateCommand 影响了预期的 1 条记录中的 0 条
【发布时间】:2017-02-13 15:35:33
【问题描述】:

在远离 .Net 类型数据集很长一段时间后,我不得不从事一个遗留项目,但我遇到了

Error: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records

当尝试按 ID 加载单个记录,然后更新该记录中的单个字段时。

【问题讨论】:

    标签: sql-server strongly-typed-dataset


    【解决方案1】:

    我首先排除了其他系统或用户绝对不可能更新导致问题的代码“下方”的记录。

    然后我排除了数据类型和舍入不是导致问题的原因,因为我了解不同系统处理浮点数舍入的细微差异可能会导致此报告的错误消息。

    然后我排除了“可空”字段没有引起问题。

    事实证明,这是我自己在存储过程中犯的一个错误。虽然它似乎返回了我加载类型化数据集所需的所有数据,但我没有包含主键字段,所以当我单步执行我的代码时,主字段的值为“-1”。

    我认为这会导致数据适配器出现一些问题。我很惊讶该错误表现为并发问题。我本来希望在没有密钥来识别记录的情况下尝试更新记录的信息更丰富!

    更正我的“选择 ID”存储过程以返回 ID 字段以及所有更多有趣字段解决了在适配器上调用 Update 方法时的问题。 p>

    【讨论】:

      猜你喜欢
      • 2017-06-08
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多