数据处理提交的“绝对”原则——事务

作者:坚定的守猴

撰写日期:2019年7月6日

开发软件和关键技术:VS;事务开启

在项目需要同时处理多条数据进行提交的时候,为了避免当中出现数据异常能够正常保存到数据库。对此我们就采用进行“”事务“的提交方法。

事务,它的数据处理原则有一种绝对的性质,对于处理之后的结果,要么成功,要么失败。数据处理成功之后,它在最后一步操作就能把这些数据完整的保存到数据库;如果失败,它就出现“回滚”,直接返回保存之前的状态,让你重新处理数据。这样就避免因为异常而会导致数据丢失的情况。

现在我们通过保存用户类型的例子来进行介绍一下。

首先看一下数据的关系图,看一下用户类型表与哪些表有联系。
在这里插入图片描述

从图中我们分析可知,用户类型表与权限的表是一对多的关系,一个用户它就可以获得多个权限(在这项目里面用户的权限主要是体现在查看项目里面哪些模块信息)。这样的话用户类型是主表,而权限就是副表。所以新增用户类型的同时也要把它名下的多个模块信息也要新增进去。这个时候我们就得采用开启事务的处理方法

接下来我们就开始写新增数据的代码
在这里插入图片描述

(在使用事务之前,先到内部软件的引用这事务(TransactionScope)的程序集)把新增开头的步骤写完之后,就写开启事务的代码。为了进一步确保事务正常进行,就把事务放进using里面,因为using就充当了一个全程监督摄像头的角色。保证事务真正的被执行到。

在这里插入图片描述

获取新增用户类型的Id,把modularDetailId这数组分割成字符串。然后就对权限表进行遍历的查询,判断权限信息不为空的情况下进行新增进去。

现在把获取到的数据多条的新增进去,在scope.Complete这一句就是把这些新增的数据提交到数据库,成功了就进行保存,失败了就返回保存之前的页面。

在这里插入图片描述

到页面看一下form表数据的提交代码

在这里插入图片描述

现在我们就看一下这效果咋样

在这里插入图片描述

头部那里是用户类型的信息,表格里面的是就是权限表的信息。输入了用户类型的基本信息,点击一下保存。

为了确保数据成功保存,我们就到用户类型表看一下
在这里插入图片描述

验证完之后,证明事务提交的方法是成功被执行的。关于事务的内容就介绍到这里。(说明一下,因为这是一个整体模块的功能,事务只是其中的一种方法,所以里面功能效果的代码就没怎么介绍,如果感兴趣,欢迎讨论)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值