12、c#中事务及回滚

 1         public void UpdateContactTableByDataSet(DataSet ds, string strTblName)
 2         {
 3             try
 4             {
 5                 SqlDataAdapter myAdapter = new SqlDataAdapter();
 6                 SqlConnection conn = new SqlConnection("connection string");
 7                 SqlCommand myCommand = new SqlCommand("select * from strTblName", conn);
 8                 myAdapter.SelectCommand = myCommand;
 9                 SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
10
11                 conn.Open();
12                 SqlTransaction myTrans = conn.BeginTransaction();
13                 myCommand.Transaction = myTrans;
14
15                 try
16                 {
17                     myAdapter.Update(ds, strTblName);
18                     myTrans.Commit();
19                 }
20                 catch (Exception e)
21                 {
22                     try
23                     {
24                         myTrans.Rollback();//回滚并取消数据库的更新
25                     }
26                     catch (SqlException ex)
27                     {
28                         if (myTrans.Connection != null)
29                         {
30                             Console.WriteLine("回滚失败! 异常类型: " + ex.GetType());
31                         }
32                     }
33                 }
34                 finally
35                 {
36                     conn.Close();
37                 }
38
39             }
40             catch (Exception ex)
41             {
42                 throw ex;
43             }
44         }

事务回滚主要用于提交失败。(lock)用于处理并发事件。

时间: 2024-10-13 05:50:52

12、c#中事务及回滚的相关文章

Service中事务不能回滚的解决方式(转)

1.在service方法里面如果对异常进行了捕获的话,该事务是不会进行回滚的        默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚.          spring aop  异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚,换句话说在service的方法中不使用try catch 或者在catc

spring中事务的回滚

https://www.cnblogs.com/zeng1994/p/8257763.html(浅谈Spring中的事务回滚) http://www.cnblogs.com/nnngu/p/8627662.html (Spring的编程式事务和声明式事务) 原文地址:https://www.cnblogs.com/lqtbk/p/10729469.html

Spring事务异常回滚,捕获异常不抛出就不会回滚(转载) 解决了我一年前的问题

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常时候 日志是打印了,但是加的事务却没有回滚. 例:     类似这样的方法不会回滚 (一个方法出错,另一个方法不会回滚) : if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); }

代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)

前几天开发中遇到了一个问题,在进行调试的过程中发现配置在service层的事务不起作用,抛出异常后数据库的更新还是成功了,事务并没有回滚,然后就开始各种检查,查看spring的事务是否配置正确,进入更新方法时是否开启了事务,经过检查之后发现一切都正常,那为什么事务不回滚呢?问题出在了一个很难会去考虑的地方(数据库里创建的表不支持事务). Mysql数据库默认的创建表的引擎是:MYISAM,使用这种引擎的表效率高,但是不支持事务,所以我们在建表时最好是根据需求手动去指定我们需要的引擎,下面是一个能

Spring事务异常回滚,捕获异常不抛出就不会回滚

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常时候 日志是打印了,但是加的事务却没有回滚. 例:     类似这样的方法不会回滚 (一个方法出错,另一个方法不会回滚) : [html] view plain copy if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.s

JDBC PreparedStatement ,CallableStatement,以及事务,回滚举例

程序中用到的类,文件,jar 代码: 1,文件:db.properties文件内容 user=rootpassword=123url=jdbc:mysql:///student_dbdriver=com.mysql.jdbc.Driveraaa 2,类Utils.class import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException

spring + myBatis 常见错误:注解事务不回滚

最近项目在用springMVC+spring+myBatis框架,在配置事务的时候发现一个事务不能回滚的问题. 刚开始配置如下:springMVC.xml配置内容: spring.xml配置内容 从上面两个配置文件看出,开始的时候我把Service配置在springMVC中的.但是,事务注解我配置在了spring中.这样就会出现问题了.因为spring的容器(applicationContext)和springMVC的(applicationContext)是不同的. spring容器加载得时候

SpringMVC+Ibatis事务不回滚的问题

在使用SpringMvc的时候,大多数人都会遇到事务不回滚的问题.其实事务在Spring里面使用起来很简单,只要配置正确了,知识一个标签的事. 下面我就给大家说一下我是怎么解决这个问题的. 一.配置扫描标签时 <!-- springmvc的配置文件中不扫描带有@Service注解的类 --> <context:component-scan base-package="com.dds"> <context:exclude-filter type="

Spring AOP声明式事务异常回滚

转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw new Exception("xxxxxxxxxxxx"); 事物没有回滚 自以为很了解事物,或许时间久远的缘故,没分析出来何故,遂查阅了下资料,写下了如下的内容,供参考: 1