文献种类:专题技术文献;
开发工具与关键技术:Visual Studio 2015 单条数据删除和批量删除方法共用
作者: ;年级: ;撰写时间: 年 月 日
文献编号: ;归档时间: 年 月 日
控制流程方法共用
开发工具与关键技术:VisualStudio 2015 单条数据删除和批量删除方法共用
作者:廖茂
撰写时间:2019年04月16日
删除,这一步骤在增删查改中较为简单,有单条数据的删除,也有批量删除。
我们在编写删除的控制流程代码时,一般都会将单条数据删除和批量删除分开写,各有各的控制流程方法,如下面一个多表删除的例子:
单条数据删除:
首先声明一个string类型的变量用来记录删除执行的状态,初始值设为“failed”
考虑到单条数据的删除是根据ID进行删除的,需要删除的数据是唯一的,所以要用try{}catch{}包裹删除执行代码
如上图所示,先根据ID查询出需要删除的信息,然后删除学生表里的信息,由于是多表删除,所以需要获取删除学生信息的用户ID,并且根据用户ID查询出需要删除的用户角色明细表信息,然后删除用户明细表里的信息,如下图:
执行完以上步骤,根据用户ID查询出需要删除的用户信息,并且删除
最后通过把状态赋值给记录状态的变量的方法把状态返回到页面。
批量删除:
在编写批量删除的控制流程代码之前需要在视图那边获取选中行并且把选中行的数据中的学生ID以特定的符号作为分隔符赋值给一个变量,然后去掉最后一个分隔符,通过post方法,以键值对的方式把数据赋值给一个参数传到控制器这边来,如下图:
接下来编写控制流程方法
先声明三个变量,一个记录删除执行状态,一个记录删除成功的数据条数,一个记录删除失败的数据条数,
string strMsg = “failed”;
int countSuccessDel = 0;
int countFailedDel = 0;
然后判断视图传过来的参数StudentIds是否为空,不为空进行下一步的数据分割操作,为空则返回参数异常
数据分割:(声明一个字符串数组接收分割后的数据,分割以分隔符“;”为依据进行分割)
string[] StudentIds = StudentIds.Split(‘;’);
遍历字符串数组,并且将数组里string类型的数据转换为int类型,然后根据学生ID获取需要删除的学生信息并进行删除,如下:
删除了学生信息后接着就要删除用户角色明细表里面的信息,既然要删除用户角色明细表里面的信息,那么就要获取删除的学生信系的用户ID,根据用户ID来查询出需要删除的用户角色明细表,然后删除用户角色明细表里面的数据,如下:
执行完以上步骤,根据用户ID查询出需要删除的用户信息,并且删除和设置删除成功和删除失败的条数根据执行情况自行改变
然后通过字符串拼接把状态赋值给记录状态的变量
最后返回变量。
通过上面两个删除,我们可以发现,两个控制流程大部分的控制流程都是一样的,就是批量删除多了参数的判断和数据分割这两个步骤,我们可以想一下,既然如此,那么两者可不可以共用一个控制流程方法?单条数据删除的控制流程方法,可不可以让批量删除公用?这个还是别想了,还是公用批量删除的方法吧,直接在视图那边把单条数据删除的js方法中的键值对的Key改成和批量删除中一样再把调用控制其方法的路径改为批量删除方法的路径,视图代码如下:
这样就可以实现单条数据删除和批量删除共用一个控制流程方法的操作了