小弟在写一段代码,如果多个客户端使用数据适配器连接数据库然后把数据读到本地内存中,这样如果修改了内存中的数据,然后读回到数据库中,会不会引起数据库中的数据不正确。比如2个客户端都通过数据适配器把数据读到数据集中修改之后,又同时写入数据库。会造成数据不正确嘛?

解决方案 »

  1.   

    其实也不要紧了,数据始终保持随后一个进行更新的记录,就算俩人同时操作,也要分个前后,
    这就类似于一个人连着更新两次数据,如果你是想当一个人在操作数据时,禁止其他人访问的话,
    那就使用lock进行数据保护,但是多人操作的话,效果不好~~
      

  2.   

    如果没有在sql语句中加锁的话,最后会造成数据库中数据不对。
    当然如果用事务的话本身也会加锁。
    解决方案:
    在读入数据库到内存的时候给所要操作的表加锁。操作完之后解锁
      

  3.   

    两个客户端操作,b/s的,只要不是static,每个用户操作的时候会定义不同的对象,这样用的就不是同一个数据集,就不会冲突
    static除外
      

  4.   

    不会的 DbCommandBuilder的ConflictOption属性 默认为CompareAllSearchableValues,即更新和删除语句将在 WHERE 子句中包含表中的所有可搜索列
    另外的用户更改后,你再更新会产生更新期望值0条记录的错误。
      

  5.   

    如果两个人操作的话,如果第一个修改了数据库的数据,第二个在去修改的话,因为where条件发生了变化,所以不会修改到数据;但是如果是根据主键来的话,估计会有问题。
      

  6.   

    不会,如果两个用户更新同一条记录,后一次会引发更新冲突。
    看你的适配器如何设计了。
    用现成的commandbuild应该就行了www.datasonar.com