今天我要讲的内容是批量删除数据的方法。打开我们的开发工具VS,然后在控制器写我们需要的内容,我们的数据是从数据库里面提取出来的,所以我们在删除数据之前,要把数据查询出来,我之前写过单条数据的删除,如果大家对删除单条数据不理解,可以去看我之前写过的文档。在这里我就不教大家怎样去查询数据了,我先把今天要删除的页面给大家看一下。如下图所示:

singleServerConfig 批量删除 实现批量删除_数据


由于数据是有关联的,我在讲批量删除的时候会选择几条数据进行删除,来到控制器写我们批量删除的方法。

代码如下:

public ActionResult Sangchukehu(string studentIDs)
 {
 ReturnJson returnJson = new ReturnJson();
 //变量intSuceessCount记录删除成功条数,intFailCount失败条数
 int intSuceessCount = 0, intFailCount = 0;
 if (!string.IsNullOrEmpty(studentIDs))
 {
 string[] strClient = studentIDs.Split(’;’);
 foreach (var ClientID in strClient)
 {
 try
 {
 S_Client dbClient = (from tbClient in myModel.S_Client.ToList()
 where tbClient.ClientID == Convert.ToInt32(ClientID)
 select tbClient).Single();
 myModel.S_Client.Remove(dbClient);//移除
 myModel.SaveChanges();
 intSuceessCount++;}
 catch (Exception)
 {
 intFailCount++;
 }
 }
 returnJson.State = true;
 returnJson.Text = “总共删除” + strClient.Length + “条客户信息”;
 if (intSuceessCount > 0)
 {
 returnJson.Text += “,成功” + intSuceessCount + “条”;
 }
 if (intFailCount > 0)
 {
 returnJson.Text += “,失败” + intFailCount + “条”;
 }
 }
 else
 {
 returnJson.State = false;
 returnJson.Text = “参数异常”;
 }
 return Json(returnJson, JsonRequestBehavior.AllowGet);
 }

那么接下来我讲解上面的代码,首先我们声明一个变量来接收,我声明的是studentIDs,然后我声明一个returnJson来接收判断true和false。int intSuceessCount = 0, intFailCount = 0是用来记录删除的条数和失败的条数,如果有关联的就不能让它删除,这一步我还没有做判断,然后用if…else来接收,首先判断获取studentIDs,如果获取不到就报参数异常的错误,获取到的话就对数据进行分割,因为数据的通过“;”这个符号分开的。然后用foreach进行判断,foreach (var ClientID in strClient)这是让ClientID等于strClient,用try…catch进行判断,首先把要删除的数据查询出来,查询出来之后,就移除数据,然后就是下面的一系列的判断。把批量删除数据的方法写完整之后,来到页面调用批量删除数据的方法,下面是调用方法的代码:

//批量删除
 function piliansangchu() {
 //获取选中checkbox
 var checkStatus = layuiTable.checkStatus(‘tabAcademe’);
 if (checkStatus.data.length>0) {
 var strIds = ‘’;
 for (var i = 0; i < checkStatus.data.length; i++) {
 strIds += checkStatus.data[i].ClientID + “;”;
 }
 strIds = strIds.substring(0, strIds.length - 1);
 layer.confirm(‘您确定要删除选中的’ + checkStatus.data.length + ‘条客户信息?’, { icon: 3, title: ‘提示’ }, function (index) {
 $.post(“Sangchukehu”, { studentIDs: strIds }, function (returnJson) {
 layer.close(index);
 if (returnJson.State == true) {
 //刷新表格
 tabAcademe = layuiTable.reload(‘tabAcademe’);
 }
 layer.alert(returnJson.Text, { icon: 6 });
 });
 });
 }
 else {
 layer.alert(“请选择要删除的数据”, { icon: 3, titile: ‘提示’ });
 }
 }

首先我们获取批量删除的按钮,然后获取选中checkbox,checkbox是我们的复选框,我在表格里写了一个监听事件,然后用if…else判断,判断一下checkbox的长度为不为0,如果为0,那么就提醒用户请选择要删除的数据。如果大于0,声明一个strIds为空,用for循环checkbox的长度,让strIds += checkStatus.data[i].ClientID + “;”;

然后strIds = strIds.substring(0, strIds.length - 1);接下来的操作跟单条删除数据的步骤一样,我就不多讲了。

实现的效果如下:

singleServerConfig 批量删除 实现批量删除_数据_02


这样就可以实现批量删除数据的功能。大家可以尝试一下。

学习总结:通过这次学习批量删除数据的方法,我对删除的功能有了更多的了解,之前一直讲查询、新增、修改、删除这四个基础功能,当然我们做开发软件的时候肯定会用到这四种功能,别小看这四种功能,它的方法可以由简单变成复杂,复杂到我们的理解能力的极限。我希望大家可以看明白这批量删除数据的方法。