笔者对ADO.Net Sql进行使用说明
原来上网我下了很多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的产生;
◆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名称。