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

简介:

实事上,一个错误的理解就是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()只要出现异常,程序将自己回滚

分类: ASP.NET
0
0
« 上一篇: ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
» 下一篇: SQL 列转行,即多行合并成一条
posted @ 2017-04-30 10:19 左正 阅读( 9) 评论( 0) 编辑 收藏
 
相关文章
|
7月前
|
SQL API 数据库
Seata AT模式问题之抛出异常触发回滚如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题
561 13
|
2月前
|
消息中间件 存储 缓存
如何在无状态函数中实现事务性操作
如何在无状态函数中实现事务性操作
|
7月前
事务提交后回调
事务提交后回调
43 2
|
开发工具 git
回滚代码
回滚代码
313 0
回滚代码
|
缓存 Java 数据库连接
rollback-only异常令我对事务有了新的认识(二)
rollback-only异常令我对事务有了新的认识(二)
1154 0
rollback-only异常令我对事务有了新的认识(二)
|
SQL Java 关系型数据库
rollback-only异常令我对事务有了新的认识(一)
rollback-only异常令我对事务有了新的认识(一)
236 0
rollback-only异常令我对事务有了新的认识(一)