数据库事务-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语句的过程中如有异常则被捕获并且回滚事务,将不会对数据库中的数据产生任何的影响。

 

 

你可能感兴趣的:(transaction)