开发工具与关键技术:MVC
作者:文泽钦
撰写时间:2019年5月6日
删除方法很简单,在页面的写法,一个请求方法,一个点击事件,以及提示信息,删除方法要接收员工的id,在删除方法后加上员工id,这个员工id,不是直接从数据库中的员工id,而是从页面上选择到的员工id:
function delEmployee(employeeId) {
//提示信息
layer.confirm("确定要删除该条数据吗?", { icon, title: "来自狄仁杰的关怀"}, function() {//请求删除路径方法
$.post("delEmployee", { EmployeeID: employeeId }, function (msg) {
//删除是否成功提示
layer.alert(msg, { icon: 3, title: "来自妲己攻略" });
//刷新表格
tabEmployee.reload();
});
});
}
要注意的是记得在删除按钮上拼接上employeeId,拼接方法是在点击事件上οnclick=”delEmployee(‘+employeeId +’)”
删除方法在控制器写法,删除涉及到多表删除,分析那些数据是属于员工,员工表里的员工信息,还有用户表里的用户信息是属于员工的个人信息,所以只需要删除员工表和用户表就可以了,删表也是有先后循序的,先删数据多的那张表,员工表的数据比较多,所以先删除员工表,再删除用户表:
// 接收页面传过来的员工id
public ActionResult delEmployee(int EmployeeID) {
//记录状态
string strMsg = "failed";
//捕获异常
try {
//删除员工表,根据employeeId查询需要删除的员工信息
PW_Employee dbEmployee = (from tbEmployee in MyModels.PW_Employee
//页面传过来的员工id等于数据库的员工id
where tbEmployee.EmployeeID == EmployeeID
//选择条数据
select tbEmployee).Single();
//保存到数据库
MyModels.PW_Employee.Remove(dbEmployee);
//获取员工用户id
var userId = dbEmployee.UserID;
//根据userid查询需要删除的用户角色明细表信息,从用户明细表中查询
PW_UserRoleDetail dbUserRoleDetail = (from tbUserRoleDetail in MyModels.PW_UserRoleDetail
//用户明细表的用户id等于获取到的用户id
where tbUserRoleDetail.UserID == userId
//返回值只能是一条数据,所以用Single()
select tbUserRoleDetail).Single();
//保存到数据库
MyModels.PW_UserRoleDetail.Remove(dbUserRoleDetail);
//用户表
PW_User dbUser = (from tbUser in MyModels.PW_User
//用户表的用户id等于获取到的用户id
where tbUser.UserID == userId
//选择查询出来的单条用户数据
select tbUser).Single();
MyModels.PW_User.Remove(dbUser);
//执行删除
MyModels.SaveChanges();
//返回状态
strMsg = "删除成功";
}
catch (Exception)
{//返回异常
strMsg = "error";
}
//返回值
return Json(strMsg, JsonRequestBehavior.AllowGet);
}
删除方法是一张一张表删除的,不是一次把几张表一起删除的,我们还是拿这条数据测试删除方法是否成功:
确定删除后,页面返回删除成功,再到数据库看看是否删除了,我们在控制器上写了倒叙排序,所以删除页面上的第一条数据,就是删除数据库中的最后一条数据,打开数据库看看是否成功删除该数据了:
页面上第一条姓名为“嘉陵”的数据再数据库中的找不到了,所以删除的方法是正确的。不管是做新增、修改、还是删除测试的时候更新数据不确定所写的方法是否正确时,建议去数据库看看需要更新的数据是否达到自己需要的效果。