码迷,mamicode.com
首页 > 数据库 > 详细

多数据库事务处理:有待考究

时间:2014-11-19 18:03:19      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

转:http://www.cnblogs.com/tylerdonet/archive/2009/10/30/1592653.html

 在一个数据库中实现事务是没什么问题,当时项目中常常会遇到多个数据库交叉事务的情况,这个方法使用两个SqlTransaction 来处理这两个数据库中的事务,当一个更新不成功两个都要回滚。

 1 public void TransactionDebug()
 2   {
 3 
 4    string sql1 = @"Data Source=XXXXXX;Initial Catalog=stuDB;Integrated Security=True";
 5    string sql2 = @"Data Source=XXXXXX;Initial Catalog=Northwind;Integrated Security=True";
 6 
 7    SqlConnection conn1 = new SqlConnection(sql1);
 8    SqlConnection conn2 = new SqlConnection(sql2);
 9 
10    string sqlUpdate1 = "UPDATE stuInfo SET stuAddress=‘江南‘ WHERE stuNO=‘s25301‘";
11    string sqlUpdate2 = "UPDATE Products SET ProductName=‘Chian‘ WHERE ProductID=1";
12 
13 
14    SqlCommand sc1 = new SqlCommand(sqlUpdate1, conn1);
15    SqlCommand sc2 = new SqlCommand(sqlUpdate2, conn2);
16 
17    conn1.Open();
18    SqlTransaction sqlTran1 = conn1.BeginTransaction();
19    conn2.Open();
20    SqlTransaction sqlTran2 = conn2.BeginTransaction();
21 
22    int effectrow=0;
23 
24    using(TransactionScope tranScope = new TransactionScope())
25    {
26     try
27     {
28      sc1.Transaction = sqlTran1;
29      effectrow += sc1.ExecuteNonQuery();
30 
31      sc2.Transaction = sqlTran2;
32      effectrow += sc2.ExecuteNonQuery();
33     }
34     catch(SqlException ex)
35     {
36      sqlTran1.Rollback();
37      sqlTran2.Rollback();
38      conn1.Close();
39      conn2.Close();
40 
41      throw ex;
42     }
43     if(effectrow == 2)
44     {
45      sqlTran1.Commit();
46      sqlTran2.Commit();
47     }
48     else
49     {
50      sqlTran1.Rollback();
51      sqlTran2.Rollback();
52     }
53 
54     conn1.Close();
55     conn2.Close();
56    }
57   }

 

多数据库事务处理:有待考究

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/Unrmk-LingXing/p/4108436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!