zoukankan      html  css  js  c++  java
  • 数据访问——关于事务

    事务——transaction ,它有一个典型的特点:ACID

    A——原子性:事务是一个整体,不能再拆分,要么都执行要么都不执行;

    C——一致性:事务执行之前和执行之后的数据要一致;

    I——隔离性:事务在执行过程中,所有与事务相关的对象都不能再执行其他的操作(相当于被隔离起来)

    D——持久性:事务在遇到某种特殊情况导致操作未执行完的时候,数据会回滚到最初状态

    事务分为两类:

    一,链接内事务:在链接打开后,使用事务控制多条语句的执行

    1,创建事务对象

    SqlTransaction trans=conn.BeginTransaction();  //注意必须是链接打开后编写

    2,把事务对象挂到命令对象上,让命令执行带有事务的功能

    cmd.Transaction=trans;

    3,执行CommandText命令操作数据库

    (1)成功后调用事务对象的Commit()方法来提交执行的结果。

    (2)失败后调用事务对象的Rollback()方法来回滚执行前的状态。

     二,跨链接的事务:TransactionScope对象

    使用该类事务的步骤:

    1,启动服务:DTC 分步式事务协调器

    2,引用事务程序集,在解决方案管理器的引用中,右键添加引用:system.Transactions

    3,使用using system.Transactions 把命名空间导进来

    4,使用TransactionScope类来控制事务。

    using (TransactionScope ts = new TransactionScope())
    {
    DeleteWork("p001");
    DeleteFamily("p001");
    DeleteInfo("p001");
    ts.Complete(); //必须。它是用来提交事务的。
    }

  • 相关阅读:
    线程私有数据
    C
    Zend_Json 简介 --(手冊)
    Spring之AOP实现面向切面编程
    JDBC框架
    NYOJ15-括号匹配(二)-区间DP
    SDUTOJ 贪心 -商人小鑫
    Java 8 类型转换及改进
    java内存结构(执行时数据区域)
    Android Studio 编译Gradle提示编码错误
  • 原文地址:https://www.cnblogs.com/William-1234/p/4489369.html
Copyright © 2011-2022 走看看