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(); //提交
                }

  • 相关阅读:
    extjs数据类型
    Extjs 动态控制列显示
    400
    extjs主单清单同时编辑提交
    js-map模拟
    Leetcode 407.接雨水
    Leetcode 406.根据身高重建队列
    Leetcode 405.数字转化为十六进制数
    Leetcode 402.移掉k位数字
    Leetcode 401.二进制手表
  • 原文地址:https://www.cnblogs.com/biyyss_sun/p/2343417.html
Copyright © 2011-2022 走看看