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 = ;
  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 = ;
  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 > )
  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 中事务的使用的更多相关文章

  1. ado.net中事务的使用

    ADO.Net中也提供了事务处理功能,通过ADO.net事务,可以将多个任务绑定在一起,如果所有的任务成功,就提交事务,如果有一个任务失败,就讲滚回事务 执行ADO.Net事务包含四个步骤,接下来以S ...

  2. ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)

    我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的 ...

  3. ADO.NET中使用事务进行数据库读写的办法

    使用事务一般是进行数据写入,数据读取一般是不需要这货的 第一种办法: 使用存储过程: 顾名思义,在存储过程中定义好变量,定义好事务开始,结束,错误回滚然后在ADO.NET中正常调用存储过程的方法就行 ...

  4. ADO.NET 中的数据并发

    当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响.处理这种情况的系统叫做“并发控制”.并发控制的类型通常,管理数据库中的并发有三种常见的方 ...

  5. ADO.NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  6. SQL server中事务的四个属性特征(ACID)

    事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...

  7. [No0000BC]ADO.NET中的几个主要对象

    ADO 指 ActiveX 数据对象(ActiveX Data Objects). 从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO ...

  8. Hibernate中事务的隔离级别设置

    Hibernate中事务的隔离级别,如下方法分别为1/2/4/8. 在Hibernate配置文件中设置,设置代码如下

  9. ADO.NET 中的新增功能

    ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient D ...

随机推荐

  1. 黑马-Spring与数据库

    Spring与数据库 Spring与jdbc 引入dataSource 在客户端 模板编程 类的结构图, 真正干活的是JdbcTemplate(底层实现,操作 excute方法) JdbcTempla ...

  2. 【点击项目属性】Target runtime Apache Tomcat v7.0 is not defined

    这个项目是去年用同一个eclipse做的,但是今年原封不动导入的时候,确发现这个东西 tomcat选成我们本地的tomcat8就可以了 泼菲解决.

  3. linux系统常用监控系统状态信息命令

    [root@bogon ~]# uptime #平均负载 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...

  4. MySQL Binlog--binlog_format参数

    ===================================================================================== binlog_format参 ...

  5. day4python学习

    2.3.1.字符串的索引与切片. 字符串是不可变类型,所有对他的操作(如切片split)都是生成的新的字符串, 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推,从右往左数的话是从- ...

  6. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  7. mvn+spring+webapp模板

    idea新建项目,选择maven-archetype-webapp 在main目录下创建java  resource 文件夹,赋予特殊文件夹 pom.xml 添加 <!--Spring框架核心库 ...

  8. 利用pipeline批量插入数据到redis

    在推荐系统中,推荐候选集格式一般是,itemid itemid_list.要把itemid作为key,推荐列表作为value批量插入到redis. 比如文件cf.data为: cf_763500210 ...

  9. 使用openssl命令剖析RSA私钥文件格式

    原文 https://blog.csdn.net/zhymax/article/details/7683925 Openssl提供了强大证书功能,生成密钥对.证书,颁发证书.生成crl.验证证书.销毁 ...

  10. Modelsim使用流程---基于TCL命令的仿真

    Modelsim使用流程---基于TCL命令的仿真 本文使用的Modelsim版本为Modelsim SE-64 10.1.c 1.File -> new -> Project 2.添加或 ...