ASP .NET MVC中的批量删除数据

开发工具与关键技术:VS+批量删除数据
作者: 李伙
撰写时间: 2019年4月11日

在学习MVC过程中,很多时候要删除多条数据的时候,我们不可能一条一条的删除,一条一条的删除不仅很浪费时间,而且很容易出错。因此我们可以多条数据一起删除,即批量删除数据,这样大大缩短了我们的时间,而且单条数据的删除也可以用批量删除的方法。先来看看js部分的代码格式:

function 自定义方法名称(){
	//获取选中行数据
	var checkStatus=layuiTable.checkStatus("表格名称");
	//console.log(checkStatus);
	if(checkStatus.data.length>0){
		 var 自定义名称1= "";
		 for(var i=0; i<checkStatus.data.length; i++){
			 //根据ID拼接字符串 (比如这里根据CertificateID来进行字符串的拼接)
	         自定义名称1 += checkStatus.data[i].CertificateID+";"; 
         }
         //去掉最后的一个“;”
         自定义名称1=自定义名称1.substring(0,自定义名称1.length-1);
         layer.confirm("您确定要删除选中的"+checkStatus.data.length+"条数据信息?",
             {icon:3,title: "提示"},function(){
	         $.post("传入控制器的方法名称",{自定义名称(传入控制器的参数):自定义名称1},
	         	  function(msg){
		          //刷新表格
		          表格名称.reload();
		          layer.alert(msg,{icon:0,title: "提示"});
              });
          });
    }
    else{
	    layer.alert("提醒用户选择需要删除的数据");
    }
}

如上:首先要获取选中行的数据,然后用“if(){}else{}”语句判断是否选中了数据,如果没选中就提醒用户选择需要删除的数据,如果选中了就进行下一步操作。先定义一个变量初始值为空,然后用“for(){}”循环语句拼接ID值,这里根据ID来拼接字符串,每个字符串后面都用“;”分号进行拼接。这样,在最后一个字符串后面必然会多出一个“;”分号,因此我们要去掉最后一个“;”分号,这里利用substring()方法来去掉最后一个“;”分号。substring() 方法用于提取字符串中介于两个指定下标之间的字符。substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。例如:[0,studentIds.length-1)。去掉最后一个“;”后的操作是利用layui插件中layer.confirm("",{},function(){})询问框来询问用户是否要删除选中的数据,“function(){}”为回调函数,然后再function里面写一个post请求,删除成功后就刷新一下表格。
因为这里用到layui插件,因此再使用前要再“$(function(){});”里面加载&&初始化layui模块,否则会报错。因为这里又用到了表格,因此在使用表格前要创建一个表格,然后在表格里面先获取到表格的ID,然后创建表头,是否选择分页等等。加载&&初始化layui模块以及表格的创建如下:

var 表格名称
var layer,layuiTable;
$(function(){
	 //加载&初始化layui模块
	 layui.use(['layer','table'],function(){
	     layer=layui.layer;
	     layuiTable=layui.table;

	     表格名称=layuiTable.render({
         elem:"表格ID",
          …………
          });
     });
});

写完js部分代码后就到控制器的代码了,先看看控制器的代码格式:

public ActionResult 页面传过来的方法名称(页面传过来的参数名称){
	 string strMsg= "failed";
	 int SuccessDel=0;//记录删除成功的数据条数
	 int FailedDel=0;//记录删除失败的数据条数
	 //判断参数是否为空
	 if(!string.IsNullOrEmpty(页面传过来的参数名称)){
	      //对拼接好的id进行分割
	      string[] 自定义名称1=页面传过来的参数名称.Split(';');
	      //遍历循环字符串数组
	      foreach(string 自定义名称2 in 自定义名称1){
	           try{
	               //将string类型的数据转化为int
	               int 自定义名称3=Convert.ToInt32(自定义名称2);
	               //查询数据
                   数据库中的某张表 自定义名称4=(from 自定义表名 in Model对象.查询的表
                                             where 自定义表名.字段名==自定义名称3
                                             select 自定义表名).Single();
	                //删除数据
				    Model对象.查询的表.Remove(自定义名称4);
                    //保存数据
                    myModels.SaveChanges();
                    SuccessDel ++;
                }
                catch(Exception){
	                 FailedDel++;
                }
          }
          strMsg = "总共需要删除" + 自定义名称1.Length + "条学生信息!其中成功删除" +
          SuccessDel + "条,失败" + FailedDel + "条。";
     }
     else{
	     strMsg= "数据异常!";
     }
     return Json(strMsg,JsonRequestBehavior.AllowGet);
}

如上:(1)先声明几个变量来接收删除成功以及删除失败的数据条数,(2)判断参数是否为空,为空就提醒用户数据异常,(3)对拼接好的id进行分割,这里用“Split()”方法来进行分割,分割依据是“;”分号,这里的分割依据要跟页面拼接字符串的“;”分号一致,不然会出错,也就是说,页面是以什么符号来进行拼接的,控制器这边就要以什么符号来进行分割,(4)遍历循环字符串数组,(5)将string类型的数据转化为int类型,(6)查询数据,然后删除数据,再保存数据。这样批量删除数据的方法就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值