ado.net 中事务的使用

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         }

 

转载于:https://www.cnblogs.com/Spinoza/p/10053621.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值