更新Access中的某一字段,第一次更新出现该异常,重新打开程序,第二次更新则可以更新成功。

解决方案 »

  1.   

    可能是并发冲突...Access不是适合多用户的数据库...
      

  2.   

    我现在没有用动态生成SQL批量更新,换成在循环里写更新语句,更新成功了,我想问下动态生成更新语句和自己写更新语句有什么区别啊,我感觉当数据量大时,前面一种方法速度稍微快一点,但不会快很多
      

  3.   

    虚读, Update 的时候无法找到原来的记录,无法进行更新。你看一下那个动态生成的命令就知道是什么回事了
      

  4.   

    update的时候无法找到原来的记录,无法进行更新这句话是什么意思?
      

  5.   


    例如,其中一个值, 你读出来的时候是 A, 然后在客户端修改成 B, 准备提交回数据库。而就在这个时候,另外一个程序把 A 改成了 C。如果这个时候把 B 提交回数据库,就会出现这个问题。
      

  6.   

    说白了就是主键的问题,可惜楼主偏偏不信,主键是不能修改的,主键必须和更新语句中的WHERE条件一致。比如,当执行一条UPDATE语句的时候,普通执行会返回影响的函数,如果WHERE不匹配,则返回影响0行,不会报错,但是如果是执行DataAdapter的批量更新,一旦出现影响0行的情况,就会报错,因为它认为不可能会有0行影响(另外如果影响了2行也会报错),因此你更新时必须用主键,或者是唯一键,且该键值不能修改,否则会出现影响0行的情况。