这个涉及到并发冲突处理。看看MSDN帮助里的关于开放式并发处理的部分。如果你用VS开发,可以很方便的避免这个问题。

解决方案 »

  1.   

    使用并发处理,用DataApdape自动更新dataset
      

  2.   

    是涉及并发性冲突问题,
    实现就是
    select时是: select a, a as a1, b, b as b1, c, c as c1..., from table
    update时是: update table set a = "123" where b = b1 and c= c1 and ....
      

  3.   

    在.net中处理更新可以使用两种策略:1、最近更新,last update wins,即最后的更改是有效的,这样将不需要将数据库中的更新记录和原始记录做比较;2、开放式并发,在实际访问数据库时发生锁定,任何试图更改数据库的记录都会与原始记录做比较。楼上各位大哥说的都是第二种。对于开放式并发,可以采取goody9807() 老兄说的时间戳,即timestamp、version number方法或者采取saving all values方法,即保留原始数据的副本,更新时再与数据库当前值做比较,如果不一致,则说名发生冲突,这时可以通知当前用户。至于有人说的事务处理,窃以为这里还不需要吧,因为transaction是用来处理错误而不是更新冲突的:)
      

  4.   

    同意 楼上 micropentium6(小笨)    goody9807() 的
      使用时间
      

  5.   

    使用事务,你可以看一下关于SqlTransaction的内容
      

  6.   

    建议看看msdn里的脏数据处理.