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 }

 

posted @ 2023-12-25 17:03  FelixWang  阅读(27)  评论(0编辑  收藏  举报