数据库事务SqlTransaction

  最近准备做一个小系统,在对数据库数据的操作中用到了事务。

  事务是指在执行的一系列操作。事务处理可以确保除非本单元内的全部操作都成功完成,否则不会更新数据库中的数据。这一组操作要么全部成功要么全部失败,有操作失败时则不会向数据库中写入数据。一个单元要成为事务,必须满足原子性、一致性、隔离性和持久性。

  不多说,上代码

 1 public static int executeSqlNonQuery(string str, params SqlParameter[] paras)
 2         {
 3             int result = -1;
 4             using (SqlConnection conn = new SqlConnection(conStr))
 5             {
 6                 using (SqlCommand comm = conn.CreateCommand())
 7                 {
 8                     //开始一个事务
 9                     using (SqlTransaction tran = conn.BeginTransaction())
10                     {
11                         if (paras != null)
12                         {
13                             comm.Parameters.Clear();
14                             comm.Parameters.AddRange(paras);
15                         }
16                         
17                         //指定SqlCommand对象的事务为tran
18                         comm.Transaction = tran;
19 
20                         conn.Open();
21                         comm.CommandText = str;
22                         try
23                         {
24                             result = comm.ExecuteNonQuery();
25                             //如果正常执行则提交事务
26                             tran.Commit();
27                         }
28                         catch
29                         {
30                         //如果发生异常则回滚事务
31                             tran.Rollback();
32                         }
33                     }
34                 }
35             }
36             return result;
37         }

  如果成功执行SQL命令则提交事务,在执行SQL语句的过程中如有异常则被捕获并且回滚事务,将不会对数据库中的数据产生任何的影响。

 

 

原文地址:https://www.cnblogs.com/g1mist/p/3041063.html