【问题标题】:How Dataset synchronization happens?数据集同步如何发生?
【发布时间】:2011-09-10 18:06:15
【问题描述】:

我最近参加的一次采访中提出了这个问题。假设我们有一个数据集。我们知道它(数据集)在断开连接模式下工作。现在我们已经使用 dataadapter 从数据库中提取了必要的数据到数据集中并填充了 UI。 假设一个用户(比如 user1)正在 UI 中进行一些更新,这些更新稍后将通过数据集保存到数据库中,而其他一些用户(比如用户 2)已经将数据修改到数据库中。

那么问题是数据集是如何知道数据在什么时候被修改的?这就是数据集中发生同步的方式?

换句话说,user1 不知道 user2 已经修改了数据库中的某些记录。但不知何故,数据集需要更新。怎么会这样?

谢谢

【问题讨论】:

    标签: ado.net dataset


    【解决方案1】:

    解决 ADO 中乐观并发问题的一种方法 是锁定您的 DataSet 检索到的记录 编辑操作开始。这种策略被称为 悲观锁定。长时间锁定通常会导致 较差的数据库性能和争用问题,但在 应用程序无法容忍的情况 记录在更新时发生变化,悲观 可能需要锁定。

    使用 ADO,使用悲观锁相对容易 方案。在 ADO.NET 中,设置起来有点困难, 但你仍然可以在你的 应用程序。然而,仅仅因为你可以做某事 并不意味着你应该一直这样做——我的目的是什么 仅在绝对必要时才应使用 to explain。

    悲观锁的基本步骤如下:

      1) Create a transaction with an IsolationLevel of RepeatableRead.
    
      2) Set the DataAdapter’s SelectCommand property to use the transaction you created.
    
      3) Make the changes to the data.
    
      4) Set DataAdapter’s Insert, Update, and Delete command properties to use the transaction you created.
    
      5) Call the DataAdapter’s Update method.
    
      6) Commit the transaction.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2017-03-20
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多