我用SqlConnection1连接一个数据库(db1) 后操作是insert 用SqlConnection2 另一个(db2)后操作是 delete db1和db2都是sqlserver的数据库
请问SqlTransaction 的事务能跨两个连接吗?最好有代码

解决方案 »

  1.   

    SqlConnection con1 = new ...........
    SqlConnection con2 = new ...........
    con1.Open();
    con2.Open();
    SqlTransaction trans1 = con1.BeginTransaction........
    SqlTransaction trans2 = con2.BeginTransaction........Command1 = new ......(con1,trans1);
    Command2 = new ......(con2,trans2);try
    {
         Command1.Exec......
         Command2.Exec......
         trans1.Commit();
         trans2.Commit();
    }
    catch
    {
             trans1.RollBack...
             trans2.RollBack...
    }
    finnaly
    {
      Close()
    }
      

  2.   

    也可以使用 COM+ 的事务,System.EnterpriseServices 下 ContextUtil 的用法该事务可以跨不同的数据库、不同的操作类型,比数据库的事务更强大
      

  3.   

    ADO.net事务中一个连接只能对一个事务操作,可以用楼上的方法,也可以用COM+事务
      

  4.   

    第一种是不是简单点, COM+ 的事务还不会用
      

  5.   

    帮你顶顶!
    高手,有没有COM+的好书推荐!?
      

  6.   

    System.EnterpriseServices 中 ContextUtil可以