正 文

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


www.7dspace.com  更新日期:2005-11-28 2:18:18  七度空间


在ADO中,解决乐观并发性问题的一个办法是一旦编辑操作开始,就锁定DataSet检索的记录。这个策略称为悲观锁定。长时间锁定通常会影响数据库性能,并产生争夺控制权的问题,但假如应用程序不允许记录一边更新、一边修改,悲观锁定还是有必要的。

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

要了解更多的信息

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

    * “An introduction to ADO.NET concurrency”

    * “How to handle optimistic concurrency violations in ADO.NET

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数据库。

3页,页码:[1] [2] [3] 

上一篇:数据网格之深入研究:分页和删除
下一篇:在使用.NET字符串时保留系统资源
作者:周靖 译  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐