批量删除

开发工具与关键技术:VS MVC
作者:冉冉
撰写时间:2019年4月30日

批量删除,顾名思义,就是删除多条数据;它与删除的功能是一样的,只是它们删除的条数不同而已。当然批量删除的逻辑和知识点多,会比删除复杂一点。批量删除需要一个变量来接收返回值,然后获取选中行数据,再把选中行数据中的id获取到并把所有获取到的id进行拼接。
确定用户选中了要删除的数据。判断返回来的值的长度,长度大于0说明用户已经选中要删除的数据,否则就提醒用户选择需要删除的数据。然后声明变量为空(这个变量为字符串)。然后遍历循环,循环之后把这个变量获取到,然后拼接字符串,(后面会拆分)再把最后的分号去掉得到一个新的字符串,把字符串提交(post提交)到控制器中的批量删除的方法里。提交又是一个判断:输出confirm,提示用户要删除选中的多少条数据,其中删除成功多少条,失败多少条。然后再写一个回调函数,把最后的结果写出来。 删除成功后刷新表格,提醒用户已删除成功!
在这里插入图片描述CheckStatus(“ID”)这个方法可获取到表格所有的选中行相关数据,其中ID为基础参数id对应的值。
Split 方法用于把一个字符串分割从字符串数组。这个方法有两个参数,separator是必需的,表示的是从该参数指定的地方分割该字符串。Howmany是可选的,该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多余这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
Substring(start,stop)方法用于提取字符串中介于两个指定的下标之间的字符,返回的字符串包括start出的字符,不包括stop处的字符。
到控制器写批量删除的代码:
要对传过来的字符串进行分割,需要写一个记录状态的字符串来处理一下。然后声明两个变量,一个用来记录删除成功的数据条数,一个用来记录删除失败的数据条数。这两个变量可以在页面上显示出来的。然后判断。
在这里插入图片描述
判断传过来的数据是否为空,是则提醒用户,否则就继续执行代码。其实在页面已经做过一次判断了,但是为了保险起见,在控制器还会再判断一次。
不为空就对传过来的数据进行分割(传过来的数据是字符串)分割字符串(依据(‘;’)来分割)但要声明一个数组来接收返回值 。
在这里插入图片描述
然后写一个foreach循环:声明一个字符串类型的变量来接收这个数组里的所有元素,遍历一次就传过来一个元素(遍历循环上图的数组,每一次循环都把数组里的元素(是一个字符串)依次赋值给这个(id)。Foreach对于空数组是不会执行的,所以要try…catch捕获一下异常。
如果这个数据类型与数据库中的数据类型不一样,那么就要转换数据类型。Convert就是转换的意思。然后删除。在这里插入图片描述
批量删除数据是有顺序的,如上图,删除学生信息首先从学生表开始删除,然后到用户角色明细表,最后是用户表。如果直接从用户表开始删除,那么用户角色明细表和学生表会同时出现没有数据的情况。所以删除要先从学生表或者用户角色明细表开始删除,附表最后再删除。
删除:根据ID查询需要删除的信息。把数据库里面查询到的表的某条信息用remove方法移除掉。然后获取到现在删除的表里的数据的用户ID,又根据这个用户ID来查询该条数据的用户角色明细表信息和用户表信息,然后删除。这里可以每删除一条数据可以保存一次,也可以全部删除之后再保存。
保存:
在这里插入图片描述
myModels.SaveChanges();这一句代码一定要记得写。这句代码没写的话,数据就相当于没有保存。
countSuccessDel++;这个是最开始拿来记录删除成功的数据条数变量,当保存成功一次这个变量就会自加一一次。
保存失败的话也是一样:countFailedDel++;这个变量是拿来记录删除失败的数据条数,失败一次这个变量就自加一一次。
这个数组遍历循环完之后,要设置返回页面的变量来提醒用户,成功删除多少条数据,删除失败的有多少条数据。然后返回页面就可以了。
在这里插入图片描述
批量删除就是要怎样处理多条数据,多条数据的删除就意味着我们需要传入多个用户id,考虑把这些id以字符串的类型拼接起来,传到控制器然后到控制器把它分割。这就是比单条数据的删除复杂的那一点,掌握了这点,批量删除就与单条数据的删除几乎是一样的了。
代码来源于授课老师的上课项目

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值