数据集是一个断开的临时数据库,在我进行了一系列操作后UPDATE给服务器后,是覆盖了原数据库表中的数据吗?这期间,有其它用户对该数据的表进行另外的操作,那么数据会不会出现不统一?数据集到底有什么用?

解决方案 »

  1.   

    数据集是一个断开的临时数据库 
    ----------------------------
    这个理解的很对.也可以说是内存数据库在我进行了一系列操作后UPDATE给服务器后,是覆盖了原数据库表中的数据吗?这期间,有其它用户对该数据的表进行另外的操作,那么数据会不会出现不统一?
    ----------------------------
    这属于数据并发的问题(数据库设计知识),和数据集没有任何关系.
    常见有1 乐观性并发 2 悲观性并发 3 破坏式并发, 由你来控制数据的统一性,如果覆盖了原数据库表中的数据, 就是破坏式并发,Microsoft管他叫“最后更新生效”(Last in Wins).
    数据集到底有什么用?
    ----------------------------
    如果您了解网络往返行程及数据库连接开销,知道客户端或中间层里容纳数据以及规则,
    数据集将减少将那些规则应用于数据时所涉及的开销。
      

  2.   

    DataSet不仅仅是用来操作数据库的。相反,它最大的作用还不在于操作数据库。一个DataSet可以容纳多个DataTable,你可以把你的数据存储在DataTable中。你可以把DataSet看作一个数据的容器,只不过它的功能比ArrayList什么的大多了罢了
      

  3.   

    楼主对记录集的理解很对,对数据不一致的担心也是好的,一楼说得很详细,一般情况下DataSet会引发并发冲突,更新失败
      

  4.   


    不是DataSet会引发并发冲突, 而是 DataAdapter -> CommandBuilder 不支持破坏式并发
      

  5.   

    DataSet支持乐观锁  也就是先对比一下 原版本有没有变化  有的话就会报错,当你设置继续更新的时候 就会不更新已经改变数据 继续更新下一条数据还有悲观锁   就是当你取出数据的时候加锁 防止别人再次读取 但是这样效率比较低下