实事上,一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚。

#region 事务问题
            using (TransactionScope trans = new TransactionScope())
            {
                try
                {
                    InsertUserBase(); //它插入不成功,自己回滚
                    UserInfos userInfo = new UserInfos
                    {
                        UserID = "1",
                        RealName = "zzl",
                    };
                    db.UserInfos.InsertOnSubmit(userInfo);
                    db.SubmitChanges();
                    trans.Complete();
                }
                catch (Exception)
                {
                    // throw;
                }
                finally
                {
                    trans.Dispose();
                }
            }
            #endregion

static bool InsertUserBase()
        {
            bool flag;
            try
            {
                UserBases userbase = new UserBases
                {
                    UserID = "0005",
                    Name = "zzl",
                    CreateDate = DateTime.Now,
                    UpdateDate = DateTime.Now,
                };
                db.UserBases.InsertOnSubmit(userbase);
                db.SubmitChanges();
                flag = true;
            }
            catch (Exception)
            {
                throw;
            }
            return flag;
        }

InsertUserBase()只要出现异常,程序将自己回滚

TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成相关推荐

  1. SpringBoot异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)

    参考:https://blog.csdn.net/zzhongcy/article/details/102893309 概念 事务定义 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心 ...

  2. ARM-Linux应用程序自动升级以及自动回滚的实现

    1. 研究背景 现今,许多基于arm-linux平台开发的应用程序开发都具备了物理的网卡这样的外围设备,这也是为通过网络升级应用程序提供了诸多便利,网络的便捷,快速,稳定等诸多特点.今天,我们约定应用 ...

  3. SpringBoot异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)(事务失效)...

    参考:https://blog.csdn.net/zzhongcy/article/details/102893309 概念 事务定义 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心 ...

  4. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  5. SpringBoot中try/catch异常并回滚事务(自动回滚/手动回滚/部分回滚)

    在Spring官方文档中说到,当Transaction内发生unchecked exception的时候,会自动rollback,但是当Transaction内发生checked exception时 ...

  6. CodePush 资源更新原理及资源自动回滚的 bug 解析

    1. 使用者使用如下方法调用 CodePush 的 sync 方法 RnCachePage.js import React, {Component} from 'react'; import {Vie ...

  7. mysql回滚用法_Mysql误操作后利用binlog2sql快速回滚的方法详解

    前言 在日常工作或者学习中,操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2 ...

  8. 问题(待完成):微服务,失败回滚?保持事务的原子性?多步骤调用,如何来实现...

    问题(待完成):微服务,失败回滚?保持事务的原子性?多步骤调用,如何来实现 转载于:https://www.cnblogs.com/panpanwelcome/p/9104746.html

  9. java简单的事务单元_junit 单元测试事务自动回滚(亲测有效)

    junit 单元测试事务会自动回滚.通过@Rollback(true)注解来实现,默认是true,事务会回滚,可以不写.false时事务不会回滚,数据会写到数据库中. 实例: package com. ...

最新文章

  1. android.mk 里面内容介绍
  2. 我们已经不用AOP做操作日志了!
  3. raid5数据恢复方法,服务器磁盘阵列数据恢复成功案例
  4. 非洲儿童(南阳oj1036)(馋)
  5. java实现迷宫算法--转
  6. (一)html5中的新增元素和废除元素
  7. 致初级开发者的一封信:坚持写代码!
  8. c++ 静态变量赋值_Python变量及常量解释说明
  9. Python多线程--互斥锁、死锁
  10. 详细关闭iiop方法_疏通暖气片堵塞的方法,看完你就知道了!
  11. 中台到底是什么?传统企业怎样建设中台?
  12. SQL Server 2012笔记分享-28:使用日志文件查看器
  13. 可执行jar包的maven配置
  14. 玩转JavaScript OOP[0]——基础类型
  15. QT学习回顾(二)界面布局及其控件设计
  16. 面试时会问到的项目中的问题总汇
  17. 交换机的主要功能和工作特性
  18. e站app里站hosts_流浪e站
  19. 弹性网卡支持私网多IP
  20. 华为p4支持鸿蒙功能吗_华为鸿蒙系统支持机型介绍

热门文章

  1. QDoc清单文件示例
  2. QT绘制带有负条的条形图。
  3. QT的QInputDialog类的使用
  4. php中session中的变量未定义,我的PHP页面SESSION变量无法储存该怎么办?
  5. TensorBoard不是内部或外部指令也不是可运行的程序(已解决)
  6. dependencies与dependencyManagement的区(转自:http://blog.csdn.net/liutengteng130/article/details/46991829)
  7. 4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)
  8. 1虚拟地址,虚拟内存映射,系统调用本质,进程运行状态
  9. CDH Hadoop 基于CM方式半在线安装步骤详解
  10. android左右旋转动画效果图,Android新姿势:3D翻转效果原理