删除数据
开发工具与关键技术:Visual Studio
作者:吴新洋
撰写时间:2019年04月25 日
//设置操作按钮
function setOperate(data) {
- data:为插件的一个监听事件,事件所监听的是全部的form模块元素,而在这里所监听的是考生信息1.AcademeID: 2AcademeName: 3.ClassID 4.ClassName 5.GradeID 6.GradeName 7. studentID 8.SpecialtyID 9.SpecialtyName: 10.StudentIDNum: 11.StudentName:
- 12.StudentNumberSt13.udentPicture:14.StudentSex 15.StudentState: 16.UniformAuthenticationCode: 17.UserID 18. UserNuber
var studentId = data.studentID;声明变量接收data的学生ID。
var btn = “”;
btn += ‘删除’;
return btn;
}
单条数据删除方法delStudent:
function delStudent(studentID传递) {
layer.confirm(“确定要删除该条数据吗?”, { icon: 3, title: “提示” }, function ()
{
post:“delStuInfos”控制器路径
{ StudentIds: studentID }:接收studentID
$.post(“delStuInfos”, { StudentIds: studentID }, function (msg) {
layer.alert:输出提示。
layer.alert(msg, { icon: 0, title: “提示” });
tabStudent表格刷新。
tabStudent.reload();
});
}); }
//批量删除考生信息方法
function delStudents() {
//声明变量获取选中行数据
var checkStatus = layuiTable.checkStatus(“tabStudent”);
if (checkStatus.data.length > 0) {
如果选中行,那么执行下面
var studentIds = “”;
for (var i = 0; i < checkStatus.data.length; i++) {
studentIds += checkStatus.data[i].studentID + “;”;//拼接字符串 9617;9611;split(?
}
//去掉最后的一个“;”
//substring() 方法用于提取字符串中介于两个指定下标之间的字符。
//substring(start,stop) 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。[0,studentIds.length-1)
studentIds = studentIds.substring(0 , studentIds.length - 1);
layer.confirm(“您确定要删除选中的” + checkStatus.data.length + “条学生信息?”, {icon:3,title:“提示”}, function () {
$.post(“delStuInfos”, { StudentIds: studentIds }, function (msg) {
//layui的插件刷新表格
tabStudent.reload();
layer.alert(msg, { icon: 0, title: “提示” });
});
});}
else {
layer.alert(“请选择需要删除的数据”); 提示
}
}
控制器方法单条删除:
在删除数据时需先将所要删除的数据查询出来,查询数据是否有对应的子表,
有对应的子表,先删除对应的子表,再删除对应表。
public ActionResult delStuInfo(int StudentID 接收页面参数)
{
string strMsg = “failed”;
用 try catch 来捕捉异常,因为single可能会触发异常。
try {
//根据StudentID查询需要删除的学生信息
PW_Student dbStudent = (from tbStudent in myModels.PW_Student
where tbStudent.studentID == StudentID 查询条件
select tbStudent).Single();Single查询单条数据
myModels.PW_Student.Remove(dbStudent);删除学生表
//获取删除的考生的UserID
var userId = dbStudent.UserID;
//根据userId查询需要删除的用户角色明细表信息
PW_UserRoleDetail dbUserRoleDetail = (from tbUserRoleDetail in myModels.PW_UserRoleDetail
where tbUserRoleDetail.UserID == userId用户明细表里的用户ID等于删除学生表的用户ID
select tbUserRoleDetail).Single();
myModels.PW_UserRoleDetail.Remove(dbUserRoleDetail);删除用户类型明细表
//用户表(父表)
PW_User dbUser = (from tbUser in myModels.PW_User
where tbUser.UserID == userId用户表里的用户ID等于学生表里的用户ID
select tbUser).Single();
myModels.PW_User.Remove(dbUser);删除用户表
myModels.SaveChanges();
strMsg = “success”;
}
catch (Exception)
{
strMsg = “error”;删除失败 }
return Json(strMsg,JsonRequestBehavior.AllowGet);
}
多条删除跟单条删除区别:对字符串进行分割,记录删除成功失败的条数。
int countSuccessDel = 0;//记录删除成功的数据条数
int countFailedDel = 0;//记录删除失败的数据条数
//对拼接好的id进行分割
String [] studentIds = StudentIds.Split(’;’)
成功删除多少条,删除失败多少条。
strMsg = strMsg = “总共需要删除” + studentIds.Length + “条学生信息!其中成功删除” + countSuccessDel + “条,失败” + countFailedDel