码迷,mamicode.com
首页 > Web开发 > 详细

ado.net 中事务的使用

时间:2018-12-02 16:15:50      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:ado   catch   exe   color   cut   使用   --   llb   学生   

SqlHelper 类方法中启用事务

 1 public static int UpdateByTran(List<string> sqlList)
 2         {
 3             SqlConnection conn = new SqlConnection(connString);
 4             SqlCommand cmd = new SqlCommand();
 5             cmd.Connection = conn;
 6             try
 7             {
 8                 conn.Open();
 9                 cmd.Transaction = conn.BeginTransaction();//开启事务
10                 int result = 0;
11                 foreach (string sql in sqlList)
12                 {
13                     cmd.CommandText = sql;
14                     result += cmd.ExecuteNonQuery();
15                 }
16                 cmd.Transaction.Commit();//提交事务
17                 return result;
18             }
19             catch (Exception ex)
20             {
21                 //写入日志...
22                 if (cmd.Transaction != null)
23                     cmd.Transaction.Rollback();//回滚事务
24                 throw new Exception("调用事务更新方法时出现异常:" + ex.Message);
25             }
26             finally
27             {
28                 if (cmd.Transaction != null)
29                     cmd.Transaction = null;//清除事务
30                 conn.Close();
31             }
32         }

调用

 1 static void Main(string[] args)
 2         {
 3             List<string> sqlList = new List<string>()
 4             { 
 5                 "delete from ScoreList where StudentId=100013",              
 6                 "delete from ScoreList where StudentId=100014",                
 7                 "delete from ScoreList where StudentId=100011", 
 8 
 9                 "delete from Students where StudentId=100010",
10                 "delete from Students where StudentId=100013",              
11                 "delete from Students where StudentId=100014",                
12                 "delete from Students where StudentId=100011",
13             };
14             string sql = "select count(*) from Students";
15             Console.WriteLine("删除前学生总数:{0}", SQLHelper.GetSingleResult(sql).ToString());
16             Console.WriteLine("------------------------------------------------------------");
17             int result = 0;
18             try
19             {
20                 result = SQLHelper.UpdateByTran(sqlList);
21             }
22             catch (Exception ex)
23             {
24                 Console.WriteLine(ex.Message);
25                 Console.WriteLine("------------------------------------------------------------");
26             }
27             if (result > 0)
28                 Console.WriteLine("删除成功!");
29             else
30                 Console.WriteLine("删除失败!");
31             Console.WriteLine("------------------------------------------------------------");
32             Console.WriteLine("删除后学生总数:{0}", SQLHelper.GetSingleResult(sql).ToString());
33             Console.ReadLine();
34         }

 

ado.net 中事务的使用

标签:ado   catch   exe   color   cut   使用   --   llb   学生   

原文地址:https://www.cnblogs.com/Spinoza/p/10053621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!