• C#中使用事务


           Ado.net支持两种事务模型,这在.Net Framework文档中作为指南有定义.事务指南手册介绍了通常应该知道的数据库事务, 它影响操作单个目标数据库.一个类通过由ado.net显示描述的事务边界使用事务类和方法能提供事务指南.在接下来的章节中,我将把重点放在事务指南上. 软件

           可以使用 Connection 和 Transaction 对象启动、提交和回滚事务。下面的步骤用于执行事务。若要执行事务,请执行下列操作:
           调用 Connection 对象的 BeginTransaction 方法来标记事务的开始。BeginTransaction 方法返回对 Transaction 的引用。该引用将分配给登记在事务中的 Command 对象。
           将 Transaction 对象分配给要执行的 Command 的 Transaction 属性。如果通过活动的 Transaction 对象对 Connection 执行Command,但该 Transaction 对象尚未分配给 Command 的 Transaction 属性,则将引发异常。 执行所需的命令。

          自动事务也是可行的,为了使用类来参与事务来协调跨多个数据源的改变.在这种情景下事务本身是在外层处理的,比如通过com 和 DTC. 需要了解更多自动事务的,可以参照相关自动事务.

          注:当没有在你的代码中指定事务行为时,你应该注意数据库事务默认行为.比如,SQLServer 默认自动模式,每个事务-Sql 语句或成功或失败.要了解哪种默认行为是希望得到的从你工作的数据源中,能帮你决定你是否显示定义事务,也可以对于你理解你的系统行为更有帮助.

     

    事务相关类总揽

    Ado.net数据提供对象通过Connection,Command,和Transaction类来提供事务功能. 一个典型的事务过程类似以下:

    1. 打开事务通过Connetion.BeginTransaction()

    2. 通过设置Command的Command.Transaction属性,在事务中加入语句或存储过程.
    3. 依靠提供者,选择使用 Transaction.Save()或 Transaction.Begin()来创建savepoint或内嵌的事务来使能局部回滚.
    4. 提交或回滚事务通过使用Transaction.Commit()或Transaction.Rollback()

        所有的数据提供者提供了同样的基本结构来处理事务,开始连接的事务,加入指令,使用事务物件来提交或回滚.

    SqlServer事务

    SqlServer数据提供对象提供事务的基本功能情况见以下的类和成员:
    Class

    Member

    Function

    SqlConnection Begin Transaction Open  a  new  transaction.

     

    SqlCommand
    Transaction
     
    Enlist  the  command  associated  with  the  object  in  an  open  transaction.

    SqlTransaction Save

    Create  as a  vepoint  to  enable a  partial  rollback.

    SqlTransaction Rollback Rollbackatransaction.
    SqlTransaction Commit
    CommitaTransaction http://www.mscto.com
    SqlServer数据提供者( 对于SqlServer来说,OLEDBprovider也是如此) 不提供在代码中创建内嵌事务的方式, 因此内嵌事务在SqlServer并不真正的被支持.因此这儿只有一种方式来开始一个事务在SqlClient中-使用SqlConnection.BeginTransaction().你不能在统一个连接中打开另外一个事务,直到先前的事务被提交或回滚,因此在任何时间每个连接只有一个打开的事务.为了使用局部回滚,使用SqlTransaction.Save().
  • 相关阅读:
    JS数组常用方法参考---5、sort方法
    JS数组常用方法---1、课程介绍
    JS数组常用方法参考---4、unshift方法
    JS数组常用方法参考---3、队列对应的方法
    ES6课程---12、面向对象
    legend3---30、不同类型的网站打包方案
    数据库Sharding的基本思想和切分策略
    用sharding技术来扩展你的数据库(一)sharding 介绍
    什么是Scale Up和Scale Out?
    淘宝网采用什么技术架构来实现网站高负载的
  • 原文地址:https://www.cnblogs.com/fhuafeng/p/1504568.html
Copyright © 2020-2023  润新知