zoukankan      html  css  js  c++  java
  • C# 代码实现分布式事务

    需引用using System.Transactions;

    建测试表

    create table t1
    (
       id int
    )

    建测试存储过程1

    create proc prc1
    as
    begin tran
    insert into t1 values(1)
    commit
    go

    建测试存储过程2

    create proc prc2
    as
    raiserror('error!',16,1)
    go

    示例代码

    Database db = DatabaseFactory.CreateDatabase(); //连接第一个数据库
    Database db1 = DatabaseFactory.CreateDatabase("con1");//连接第二个数据库

    using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        db.ExecuteNonQuery(CommandType.Text, "prc1");  //t1表中有一行数据
                        db1.ExecuteNonQuery(CommandType.Text, "prc2");//抛异常
                    }
                    catch
                    {
                        return;//返回 未提交 t1表中无数据
                    }
                    finally
                    {
                        //
                    }
                    scope.Complete(); //提交
                }

  • 相关阅读:
    自定义博客园代码格式
    metaWeblog Test
    STM32 USB复合设备编写
    C数组下标越界
    使用powershell批量修改文本为utf8
    在QtCreator中使用doxygen
    29.内存的基础知识
    28.时钟初始化
    27.点亮led的操作
    26.核心初始化之关闭MMU和cache
  • 原文地址:https://www.cnblogs.com/biyyss_sun/p/2343417.html
Copyright © 2011-2022 走看看