zoukankan      html  css  js  c++  java
  • 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()只要出现异常,程序将自己回滚

  • 相关阅读:
    ORACLE【0】:基本操作
    ORACLE【3】:分区表以及分区索引
    ORACLE【2】:锁机制及解锁
    log4j学习一:解决系统日志错位问题
    使用一个非堵塞的socket用于接收http请求
    Python中文转换报错 'ascii' codec can't decode byte 0xe8 in position
    首次使用Redis记录【3】
    xsi:schemaLocation有何作用
    【转】【redis】3.Spring 集成注解 redis 项目配置使用
    maven仓库地址
  • 原文地址:https://www.cnblogs.com/soundcode/p/6788958.html
Copyright © 2011-2022 走看看