笔者对ADO.Net Sql进行使用说明
创始人
2024-06-17 17:40:37
0

原来上网我下了很多ADO.Net Sql的Demo。而我用的是ADO.Net Sql,我在使用这些小样时,基本上绝大部分基于ADO.Net Sql工程都因为少数文件无法转换而无法加载工程,为此我也苦恼很久,后来终于让我找到了解决办法。

System.Data.SqlClient namespace包括了SqlTransaction类。此类包括了两个属性:

◆Connection:指示同事务处理相关联的SqlConnection对象;

◆IsolationLevel:定义事务处理的ADO.Net Sql

属性IsolationLevel是包括如下成员的枚举对象:

◆Chaos:从高度独立的事务处理中出现的pending changes不能被覆盖;

◆ReadCommitted:当数据需要被非恶意读取时,采用共享锁定(shared locks),但数据仍然可以在事务处理结束时被更新,这造成了非重复性的数据读取(nonrepeatable reads)或phantom data的产生;#t#

◆ReadUncommitted:恶意读取数据是可能发生的,这表示没有使用共享锁定(shared locks),并且没有实现独占锁定(exclusive locks);

ADO.Net Sql:锁定查询中所用到的所有数据,由此避免其他用户对数据进行更新。在phantom rows仍然可用的状态下,这可以避免非重复性的数据读取(nonrepeatable reads);

◆Serialisable:在DataSet中进行范围锁定,由此防止其他用户在事务处理结束之前更新数据或在数据库中插入行;

◆IsolationLevel定义锁定记录的级别,但这一概念不在本文论述范围之内。对象SqlTransaction也提供了类似的方法。你可以使用以下方法来进行事务处理;

◆Commit:提交数据库事务处理;  

ADO.Net Sql:从未决状态(pending state)反转(roll back)事务处理。事务处理一旦被提交后即不能执行此操作;

◆Save:在事务处理中创建savepoint可以对事务处理的一部分进行反转,并且指定savepoint名称。

創建一個ADO.NET事務是很簡單的,僅僅是標準代碼的一個小的擴展。只要你知道如何使用ADO.NET來訪問數據庫,那就差不多知道了。區別僅僅是你需要把代碼放到一個事務上下文中。

還是原來的ADO.Net Sql類庫引用,在實現事務的類裏面引入System.Data和System.Data.SqlClient類庫,為了執行一個事 務,你需要創建一個SqlTransation對象,可以調用你的SqlConnection對象BeginTransation()方法來創建它,一旦 你把SqlTransation對象存為本地變數,你就可以把它賦給你的SqlCommand對象的事務屬性,或者把它作為構造器的一個參數來創建 SqlCommand。在執行SqlCommand動作之前,你必須調用BeginTransaction()方法,然後賦給SqlCommand事務屬 性。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...