如题!
我有三个数据库 
---------
user 库
表: AccountInfo
--------
order 库
表:orderOnline
-----------
card 库
表:userCard------------
我想使用事务处理如下:1,更新user 库 ,Accountinfo表 某条数记录,2 向order库 ,orderOnline表 添加一条新记录,3 删除card库的userCard表的指定记录!!!求解!!!!!!谢谢!

解决方案 »

  1.   


    C#执行Sql事务处理
    //执行事务处理
    public void DoTran()
    {  //建立连接并打开
     SqlConnection myConn=GetConn();
     myConn.Open();
     SqlCommand myComm=new SqlCommand();
     //SqlTransaction myTran=new SqlTransaction();
     //注意,SqlTransaction类无公开的构造函数
     SqlTransaction myTran;
     //创建一个事务
     myTran=myConn.BeginTransaction();
     try
     {
      //从此开始,基于该连接的数据操作都被认为是事务的一部分
      //下面绑定连接和事务对象
      myComm.Connection=myConn;
      myComm.Transaction=myTran; //定位到pubs数据库
      myComm.CommandText="USE pubs";
      myComm.ExecuteNonQuery();//更新数据
      //将所有的计算机类图书
      myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
      myComm.ExecuteNonQuery();
       //提交事务
      myTran.Commit();
     }
     catch(Exception err)
     {
      throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
      }
     finally
     {
      myConn.Close();
      }
    } private SqlConnection GetConn()
      {
       string strSql="Data Source=localhost;Integrated Security=SSPI;user id=sa;password=";
       SqlConnection myConn=new SqlConnection(strSql);
       return myConn;
      }
     }
     public class Test
     {
      public static void Main()
      {
       DbTranSql tranTest=new DbTranSql();
       tranTest.DoTran();
       Console.WriteLine("事务处理已经成功完成。");
       Console.ReadLine();
      }
     }
     
      

  2.   

    直接在SQL分析器里运行:
    set XACT_ABORT ON
    begin tran
    1,更新user 库 ,Accountinfo表 某条数记录,
    2 向order库 ,orderOnline表 添加一条新记录,
    3 删除card库的userCard表的指定记录!!! 
    commit tran这样就可以保证事务按照要求处理了。但是只要有一个过程出错,将终止执行并且全部回滚。
      

  3.   

    --把你的执行语句都放在一个事务里,如:
    begin tran1,更新user 库 ,Accountinfo表 某条数记录--如果出错
    if @@error<>0 
    begin
    --抛出错误,客户端可以扑捉到。
    raiserror('更新user库过程中出错!',16,1)
    --回滚事务
        rollback tran
    --返回
        return
    end
    --其他的2,3,4同样写。
    --最后没问题,提交事务commit tran