C#事务处理

 

       在我们项目研发的中,保证数据的完整性是很重要的事情,例如:存在两个表,订单表A和订单明细表B,表A的主键作为表B的外键,即新增订单数据的时候,是先新增订单表A,然后获取表A自增ID作为外键新增订单明细表B,假设新增表A的过程成功了,但新增表B的过程失败,为了确保数据完整性,需要把表A的这一条记录也记为失败,即是要么同时成功,要么同时失败,此时就需要用到事务处理,在事务代码块内,只要有报错事务会自动回滚,在最终检测都执行成功时提交事务即可,代码如下:

#region 企业端查看求职者联系方式,积分支付
        /// 
        /// 企业端查看求职者联系方式
        /// 
        /// 
        [HttpPost]
        public ActionResult Insert_UserIntegra_And_ResumeDownloadInfo(string UserID, string ResumeID, string Integra)
        {
            using (TransactionScope ts = new TransactionScope())//使整个代码块成为事务性代码
            {
                #region 在这里编写需要具备Transaction的代码
                try
                {
                    UserID = DESEncrypt.Decrypt(UserID);
                    //新增用户套餐使用情况
                    int UserIntegra = DALMethod.intChaXunShuJu("LuoBinSong_API_Manage", new Dictionary {
                    { "@type","Insert_UserIntegraInfo"},
                    { "@Integra",Integra},
                    { "@UserID",UserID}
                });

                    //新增下载简历
                    int DownLoadNum = DALMethod.intChaXunShuJu("LuoBinSong_API_Manage", new Dictionary {
                    { "@type","Insert_ResumeDownloadInfo"},
                    { "@ResumeID",ResumeID},
                    { "@UserID",UserID}

                   });
                    if (DownLoadNum > 0 && UserIntegra > 0)
                    {
                        RS.code = 200;
                        RS.message = "success";
                        ts.Complete();//提交事务
                        return Json(RS, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        RS.code = 404;
                        RS.message = "nofund";
                        return Json(RS, JsonRequestBehavior.AllowGet);
                    }

                }
                catch (Exception ex)
                {
                    RS.code = 500;
                    RS.message = ex.ToString();
                    return Json(RS, JsonRequestBehavior.AllowGet);
                }
                #endregion
            }

        }
        #endregion

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C#事务处理)