用悲观锁定来解决ADO.NET并发性问题

ZDNet软件频道 时间:2003-05-12 作者:周靖 译 |  我要评论(1)
本文关键词:
使用ADO悲观锁定方案很容易实现。在ADO.NET中,它却显得有点儿难以设置,但仍可在应用程序中使用悲观锁定。不过,一件事情虽然可以做,但并不表明总是应该这样做——本文介绍的技术只有在绝对必要的前提下才应使用。
本文译自Builder.com,未经许可请勿转载在ADO中,解决乐观并发性问题的一个办法是一旦编辑操作开始,就锁定DataSet检索的记录。这个策略称为悲观锁定。长时间锁定通常会影响数据库性能,并产生争夺控制权的问题,但假如应用程序不允许记录一边更新、一边修改,悲观锁定还是有必要的。

使用ADO,悲观锁定方案很容易实现。在ADO.NET中,它却显得有点儿难以设置,但仍可在应用程序中使用悲观锁定。不过,一件事情虽然可以做,但并不表明总是应该这样做——本文介绍的技术只有在绝对必要的前提下才应使用。


要了解更多的信息
要了解乐观并发性的一些背景知识,以及它可能为ADO.NET开发者带来的麻烦,请阅读Builder.com的以下文章:


 

6个步骤轻松搞定悲观锁定

悲观锁定的基本步骤如下:

  1. 使用RepeatableRead的一个IsolationLevel来创建一个事务处理
  2. 使用DataAdapter的SelectCommand属性,使用你创建的事务处理
  3. 对数据进行修改
  4. 设置DataAdapter的Insert、Update和Delete命令属性,使用你创建的事务处理
  5. 调用DataAdapter的Update方法
  6. 提交事务处理

下面通过一个示范应用程序来解释以上步骤。首先在Visual Studio .NET中新建一个Visual Basic .NET“Windows应用程序”项目。添加两个按钮控件,一个命名为cmdFill,另一个命名为cmdUpdate;并在窗体中添加一个DataGrid控件。请将cmdFill.Text属性设为Fill,将cmdUpdate.Text属性设为Update,以便稍后测试示范应用程序时能标识这些按钮。

接着,将一个SqlDataAdapter控件拖放到窗体上。向导启动后,请连接Northwind数据库,并将SELECT * FROM Customers用作你的SQL选择语句。生成一个DataSet,把它命名为dsCustomers,再把它添加到设计器窗口。最后,将DataGrid的DataSource属性绑定到DsCustomers1.Customers。


没有SQL Server?
如果不能访问SQL Server,可使用特定于OLE-DB的ADO.NET组件,将该示范应用程序照搬到支持事务处理的任何OLE-DB数据库。



百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134