首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ADO.NET:您需要回滚事务吗?

ADO.NET:您需要回滚事务吗?
EN

Stack Overflow用户
提问于 2011-03-08 08:58:40
回答 2查看 5.5K关注 0票数 5

考虑下面的代码,如果捕获到异常,它不会回滚事务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
transaction = connection.BeginTransaction();
command.Transaction = transaction;
try {
    // interact with database here
catch {}
finally {
    connection.Close();
}

这样做的后果是什么?是否有必要回滚事务?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-08 09:00:42

它将在数据库上留下一个打开的事务,这可能会阻止其他查询。

摘自here

在使用事务时,请考虑以下一般指导原则,以避免导致死锁:

  • 始终以相同的顺序跨应用程序中的事务访问表。如果每次访问表时都以不同的顺序访问表,则死锁的可能性会增加。

  • 使事务尽可能简短。不要从事务中进行阻塞或长时间运行的调用。保持事务的持续时间较短。一种方法是在靠近数据源的位置运行事务。例如,从存储过程运行事务,而不是从其他计算机运行事务。

  • 选择平衡并发性和数据完整性的隔离级别。最高隔离级别可序列化可减少并发性,并提供最高级别的数据完整性。最低隔离级别read uncommitted会产生相反的结果。
票数 2
EN

Stack Overflow用户

发布于 2011-03-08 09:01:30

最好的方法是在using块中生成事务,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using( /*code to create the transaction you want )
{
  //perform your transaction here
  transaction.Commit();
}

如果在调用commit之前代码失败,那么当using块退出时,代码将自动回滚。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5230295

复制
相关文章
spring事务回滚机制_事务回滚失败
使用 @Transaction 来配置自动回滚,可以配置在类上,也可以配置在方法上(作用域不同),但对final或private修饰的方法无效,且该类必须是受spring所管控的。
全栈程序员站长
2022/11/01
2.1K0
ADO.NET事务封装
在数据库工具类编写的过程中,对事务的处理操作想避免各个原子操作的事务对象赋值重复操作,想对外暴露的方法为如下形式
code2roc
2023/07/19
2280
ADO.NET事务封装
嵌套事务回滚策略_内部事务回滚会导致外部事务回滚
1.外部起事务,内部起事务,内外都有Try Catch 内部出错:如果内部事务出错,内部和外部事物全部回滚,外部回滚之前的操作全部不存在,但是之后的操作继续执行。 外部出错:如果外部事物出错,内部和外部事物全部回滚,外部回滚之前的操作全部不存在,但是之后的操作继续执行。 注:如果内部的事务不起事务名称,内部如果出错,将会回滚掉会话中的全部事务,而且报异常。
全栈程序员站长
2022/11/10
3K0
java 配置事务回滚_Spring@Transactional事务回滚
Spring中事务分为编程时事务和声明式事务,编程式事务:编程人员通过代码控制事务的开启、回滚、提交,声明式事务:把事务的处理交给spring。使用注解@transactional配置就是声明式事务。
全栈程序员站长
2022/11/01
2.4K0
MySQL 死锁后事务无法回滚是真的吗?
MySQL 作为目前互联网企业使用最多的,或者说在基于成本下,最流行的数据库之一,MySQL 在国内使用者众多,那么在MySQL偶然安装后,在使用中出现死锁后,死锁中的事务到底能不能回滚 ?我们来进行相关的实验
AustinDatabases
2023/09/06
4400
MySQL  死锁后事务无法回滚是真的吗?
oracle存储过程回滚_sql事务回滚
( No INT, Name nvarchar(10), Comment nvarchar(10)
全栈程序员站长
2022/11/01
2.2K0
手动回滚、提交事务
再小的个子,也能给沙漠留下长长的身影;再小的人物,也能让历史吐出重重的叹息。——余秋雨《文化苦旅》 我们可以手动管理事务 首先需要引用两个Bean @Resource private TransactionDefinition transactionDefinition; @Resource private IArticleEnclosureService articleEnclosureService; 然后是使用 PlatformTransactionManager transact
阿超
2022/08/16
9540
java事务回滚案例_java事务控制
疑问,确实像往常一样在service上添加了注解 @Transactional,为什么查询数据库时还是发现有数据不一致的情况,想想肯定是事务没起作用,出现异常的时候数据没有回滚。于是就对相关代码进行了一番测试,结果发现一下踩进了两个坑,确实是事务未回滚导致的数据不一致。
全栈程序员站长
2022/09/27
1.6K0
JDBC中事务回滚
 理解:防止出现未知错误,导致原先要执行完全的数据只执行了一半,最终影响数据,也就是 事务是一组组合成逻辑工作单元的操作,虽然系统中可能会出错,但事务将控制和维护事务中每个操作的一致性和完整性。
吃猫的鱼Code
2023/02/02
1.6K0
django-transaction 事务回滚
事务回滚 #0 GitHub https://github.com/Coxhuang/django-transaction.git #1 环境 Python3.6 Django==2.0.6 #2 需求 用户的数据包括基本资料表A,特殊资料表B;在新增用户时,需要对表A和表B进行操作,如果A添加数据成功,但是B添加数据失败,此时,我们希望A的数据也被删除 在支付的时候,如果支付中发生异常,那么异常之前的操作,我们也希望回到原始状态 #3 事务回滚 事务回滚就是在操作数据库时,如果发生异常,能让数据回到原来的
Autooooooo
2020/11/09
1.2K0
django-transaction 事务回滚
Java的@Transactional事务回滚
在应用系统调用声明@Transactional 的目标方法时,Spring Framework 默认使用 AOP 代理,在代码运行时生成一个代理对象,根据@Transactional 的属性配置信息,这个代理对象决定该声明@Transactional 的目标方法是否由拦截器 TransactionInterceptor 来使用拦截,在 TransactionInterceptor 拦截时,会在在目标方法开始执行之前创建并加入事务,并执行目标方法的逻辑, 最后根据执行情况是否出现异常,利用抽象事务管理器AbstractPlatformTransactionManager 操作数据源 DataSource 提交或回滚事务。
全栈程序员站长
2022/07/25
2.2K0
Java的@Transactional事务回滚
Django数据库--事务及事务回滚
数据库的读写操作中,事务在保证数据的安全性和一致性方面起着关键的作用,而回滚正是这里面的核心操作。Django的ORM在事务方面也提供了不少的API。有事务出错的整体回滚操作,也有基于保存点的部分回滚。本文将讨论Django中的这两种机制的运行原理。
py3study
2020/01/19
4K0
mysql事务回滚机制概述
对于上面的取钱这个事情,如果有一步出现错误的话,那么就会取消整个取钱的动作,但是如果在第5步,系统后台已经把钱减了,但是ATM机没有取出来,那么就应用到mysql中的事务。简单地
码农编程进阶笔记
2021/07/20
2.7K0
springboot 事务回滚「建议收藏」
**1.**只有在开启事务的方法中出现异常,才会自动回滚,需要在service的public方法上面加上 @Transactional(rollbackFor = Exception.class),一旦程序出现异常,事务会自动回滚
全栈程序员站长
2022/09/05
9370
Spring 事务提交回滚源码解析
在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring 是如何去获取事务,当目标方法异常后,又是如何进行回滚的,又或是目标方法执行成功后,又是怎么提交的呢?此外,事务的提交和回滚由底层数据库进行控制,而 Spring 事务行为可以传播,这个传播方式由 Spring 来进行控制,它是怎么控制的呢?这篇文章就来分析下 Spring 事务提交回滚的源码。
Java技术编程
2020/05/20
1.4K0
springboot 事务,多张表的操作事务回滚
结果为a表的数据删除成功了,b表的数据未成功删除,这时候我们应该是b表数据回滚,a表数据也回滚,那么我们应该怎么实现这种方式呢?
AlbertZhang
2020/09/02
3.5K0
.net 2.0 你是如何使用事务处理?
     事务处理作为企业级开发必备的基础设施, .net 2.0通过System.Transactions对事务提供强大的支持.你还是在使用.net 1.x下面的很不好用的事务处理吗? 先介绍一下三
张善友
2018/01/22
9160
.net 2.0 你是如何使用事务处理?
Spring事务回滚和异常类
转载自 https://www.cnblogs.com/tianyuchen/p/6678084.html
allsmallpig
2021/02/25
1.1K0
捕获异常抛出事务不回滚
方法名上加注解事务 @Transactional 使用注解的简单模式,报错会回滚,但是如果方法中捕获异常后手动抛出异常,事务并没有回滚。
二十三年蝉
2019/07/02
1.5K0
Asp.NetCore Web开发之ADO.Net
Asp.NetCore可以说是.Net平台开发网站的一大利器,最近的一大段时间,就要跟大家分享,如何使用这一利器开发网站项目。
宿春磊Charles
2022/03/29
7620

相似问题

是否需要回滚事务?

13

MySQL事务回滚不需要回滚查询?

23

Hibernate -我真的需要回滚失败的只读事务吗?

24

Rails -不要回滚事务的某些部分

11

SQL Server 2008事务,是否需要回滚?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文