C# 利用事务程序操作业务数据,实现数据的统一性
下面就将为您介绍如何使用事务一次处理多条SQL语句的方法,包括SQL中事务的写法以及调用的方法供您参考,希望对您学习SQL语句的执行能够有所帮助。
执行一个操作时,要同时修改多张表里的数据,并且每条数据都必须操作成功,才算执行成功,为了防止有些数据操作失败,有些成功,而造成的数据错乱,我们要使用事务。
事务就是:只有所有操作都成功则成功,只要有一条数据操作失败,则回滚。
// 实现数据统一的 dbhelper
1 /// <summary> 2 /// 执行多条SQL语句,实现数据库事务。 3 /// </summary>sql2000数据库 4 /// <param name="SQLStringList">多条SQL语句</param> 5 public static void ExecuteSqlTran(List<string> SQLStringList) 6 { 7 using (SqlConnection conn = new SqlConnection(SqlHelper.ConString)) 8 { 9 conn.Open(); 10 SqlCommand cmd = new SqlCommand(); 11 cmd.Connection = conn; 12 SqlTransaction tx = conn.BeginTransaction(); 13 cmd.Transaction = tx; 14 try 15 { 16 for (int n = 0; n < SQLStringList.Count; n++) 17 { 18 string strsql = SQLStringList[n].ToString(); 19 if (strsql.Trim().Length > 1) 20 { 21 cmd.CommandText = strsql; 22 cmd.ExecuteNonQuery(); 23 } 24 } 25 tx.Commit(); 26 } 27 catch (System.Data.SqlClient.SqlException E) 28 { 29 tx.Rollback(); 30 throw new Exception(E.Message); 31 } 32 } 33 }
前台调用:
1 前台调用: 2 3 try 4 { 5 6 //写SQL语句 7 List<string> SQLStringList = new List<string>(); 8 string clickSql = "insert into [user] (name,age)values('" + 小名 + "','“+4岁+”')"; 9 string userSql = "update [class] set [name]='" + 幼儿园 + "' where id=" + 2 + " "; 10 SQLStringList.Add(clickSql); 11 SQLStringList.Add(userSql); 12 SqlDal.SqlHelper.ExecuteSqlTran(SQLStringList); 13 14 //数据库操作返回结果 15 16 } 17 catch (Exception ex) 18 { 19 20 context.Response.Write("操作失败!" + ex.Message); //输出 21 }