博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成...
阅读量:6841 次
发布时间:2019-06-26

本文共 819 字,大约阅读时间需要 2 分钟。

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

转载于:https://www.cnblogs.com/fx2008/archive/2011/12/10/2283199.html

你可能感兴趣的文章
正则表达式
查看>>
js之操作JSON数据
查看>>
Design Hit Counter
查看>>
BZOJ 3534 重建
查看>>
BZOJ 3576 江南乐
查看>>
Emacs之爬坑日记(一)
查看>>
装饰器
查看>>
【NOIP2010】引水入城
查看>>
P4491 [HAOI2018]染色
查看>>
python基础一循环
查看>>
ThreeJS的特效合成器和后期处理通道
查看>>
wiquery ManipulatingHelper
查看>>
[CQOI2011]动态逆序对
查看>>
vimrc
查看>>
ENTER_FRAME事件做进度条
查看>>
在线API
查看>>
一些链接
查看>>
前端踩过的坑
查看>>
C#图片处理示例(裁剪,缩放,清晰度,水印)
查看>>
使用ConcurrentHashMap一定线程安全?
查看>>