两个更新操作分别操作两个不同数据库,都成功才更新数据库
可以用事务吗?
好像事务是conn.BeginTransaction()
那我连接不同怎么用?

解决方案 »

  1.   

    以上说的,好像有些地方用词有问题明白点说,就是
    有两个DB db1和db2
    db1种有一个link 是到db2的
    这样在db1种是可以操作db2种的表等内容的你的事物处理的连接 就可以是指向db1的,同时,也可以做db2中想做的操作
      

  2.   

    晕,要做得这么复杂吗?
    我操作就要求
    1.
    事务开始
    update db1.tb1   --成功
    update db2.tb2   --成功
    事务提交
    2.
    update db1.tb1   --成功
    update db2.tb2   --失败
    db1的操作回滚,不更新
    3.
    update db1.tb1   --失败
    update db2.tb2   --不操作
      

  3.   

    郁闷
    把第一个db的事务放到第二个db执行成功才提交不得了
      

  4.   

    你那样的话,事务的connection指向的是哪个?
    如何连接另一个

    一个事务据我所知只能连接一个数据库
      

  5.   

    to ldhao(翰海) 你这样的话,就成了第二个先作,第一个后做其实先作和后做,不是指你程序写的顺序而是你执行不执行的顺序,哪个先执行,另一个后执行,那么后执行的错误了,第一个回滚才是问题的关键
    你就确定第二个会执行错误?放到前面来??
    两个都有可能执行失败阿
      

  6.   

    你那样的话,事务的connection指向的是哪个?
    如何连接另一个

    一个事务据我所知只能连接一个数据库---------------------------------------------
    有可能行哦,我只要求回滚第一个操作,事务建立在第一个连接上
    我回去试试行不行
      

  7.   

    呵呵,你两个数据库是一个连接吗?
    是两个连接的话,就未各个连接各开一个事务不就可以了吗至于那个先那个后的
    呵呵,在第二个执行完了
    先commit第一个再commit第二个出现在commit时出错的可能有多少?一般数据错误在提交时的错误比较少吧?
      

  8.   

    如是windows系统,应该是要用到MSDTC
    可以查看MSDN中的ServicedComponent类
    还有下面两个方法
    System.EnterpriseServices.ContextUtil.SetComplete()
    System.EnterpriseServices.ContextUtil.SetAbort()
      

  9.   

    晕,2个操作开2个事务那还需要事务干嘛,直接用try就行了中
      

  10.   

    事务一定要写 myCommand.Transaction = myTrans;吗?晕,我数据操作是用微软的SqlHelper
    SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcedure,"pr_GetGoods",sp);
    方法层里面没SqlCommand 
    怎么办?
      

  11.   

    见议听一下邵志东的:ASP.NET事务和异常处理
      

  12.   

    晕晕啊.
    三层里面
    用SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcedure,"pr_GetGoods",sp);
    怎么写事务啊?我感觉就快要成功了
    conn1.BeginTransaction()      --连接1设事务
    try
       update db1.tb1             --更新数据库1
       if(update db2.tb2 成功)    --更新数据库2
       tran.Commit();             --两个都成功,提交事务
       else
       tran.Rollback()
    catch
        tran.Rollback()
      

  13.   

    哎,你有没有在sql查询分析器中,打开一个数据库的联结,然后update另一个数据库的链接的操作?这样的话,用事务就可以了都是在一个数据库中的操作,不同的是提交的事务内容可能处理的是多个数据库的
      

  14.   

    这种问题用Com+比较容易解决,其它的都比较麻烦了
      

  15.   

    using(SqlTransaction t1=conn1.BeginTransaction())
    {
    using(SqlTransaction t2=conn2.BeginTransaction())
    {
        if(!处理两个连接的事情(conn1,t1,conn2,t2))
            return false;    t1.Commit();
        t2.Commit();//如果t2.Commit不成功后果比较严重,但这种情况不会那么容易发生。
    }
    }
      

  16.   

    依然不完美啊。
    有篇文章提到的两个数据库是SQLServer和Orcacle.
    配置好两个数据库后,一个链接可以操作两种数据库。
    这样的话就比较完美了。
      

  17.   

    不同的数据库服务器支持事务,需要调用,
    System.EnterpriseServices.ContextUtil.SetComplete()
    System.EnterpriseServices.ContextUtil.SetAbort()
    同一数据库,
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx