今天我要讲的内容是批量删除数据的方法。打开我们的开发工具VS,然后在控制器写我们需要的内容,我们的数据是从数据库里面提取出来的,所以我们在删除数据之前,要把数据查询出来,我之前写过单条数据的删除,如果大家对删除单条数据不理解,可以去看我之前写过的文档。在这里我就不教大家怎样去查询数据了,我先把今天要删除的页面给大家看一下。如下图所示:
由于数据是有关联的,我在讲批量删除的时候会选择几条数据进行删除,来到控制器写我们批量删除的方法。
代码如下:
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);接下来的操作跟单条删除数据的步骤一样,我就不多讲了。
实现的效果如下:
这样就可以实现批量删除数据的功能。大家可以尝试一下。
学习总结:通过这次学习批量删除数据的方法,我对删除的功能有了更多的了解,之前一直讲查询、新增、修改、删除这四个基础功能,当然我们做开发软件的时候肯定会用到这四种功能,别小看这四种功能,它的方法可以由简单变成复杂,复杂到我们的理解能力的极限。我希望大家可以看明白这批量删除数据的方法。