SQL事务

 1             string connstr = "";
 2             using (SqlConnection conn = new SqlConnection(connstr))
 3             {
 4                 conn.Open();
 5                 using (SqlTransaction tx = conn.BeginTransaction())
 6                 {
 7                     try
 8                     {
 9                         //using是保证资源一定会被回收的,离开using范围后自动调用Dispose方法(无论是否有异常)
10 
11                         //using==try...finally...
12 
13                         //using不会进行异常的catch
14 
15                         using (SqlCommand cmd1 = conn.CreateCommand())
16 
17                         using (SqlCommand cmd2 = conn.CreateCommand())
18                         {
19                             cmd1.Transaction = tx;//在SQLServer中必须把BeginTransaction返回的对象赋值给SqlCommand的
20                             //Transaction属性。MySql也推荐折磨写不写也可以。
21                             cmd1.CommandText = "insert into T_Persons(Name,Age) values('a',1)";
22                             cmd1.ExecuteNonQuery();
23                             cmd2.Transaction = tx;
24                             cmd2.CommandText = "insert into T_Persons(Name,Age) values('b',2)";
25                             cmd2.ExecuteNonQuery();
26                         }
27 
28                         tx.Commit();
29                     }
30                     catch (Exception ex)
31                     {
32                         tx.Rollback();
33                     }
34                 }
35             }
原文地址:https://www.cnblogs.com/ink-heart/p/5947648.html