单条删除和批量删除

删除相对来说比新增、修改、查询要简单一些,它的代码量比新增、修改、查询都要少。删除数据需要和用户进行交互,以防用户误点丢失数据,当用户确定删除数据时进行删除操作,取消则不进行删除操作(宁可繁琐一点也不愿丢失不想丢失的数据)
在这里插入图片描述

隐藏域—隐藏域在页面中对于用户是不可见的,发送表单的时候,隐藏域的信息也被一起发送到服务器。
通过主键ID来获取删除的信息(此图中的主键ID为studentIDs)
在这里插入图片描述
For循环与foreach循环的对比:
for(初始化变量;循环条件;循环迭代)(循环语句;)
foreach (要循环访问的集合中的对象的名称 表示集合中元素的标识符 in 要循环访问的集合或数组的名称){循环语句;}
在这里插入图片描述

删除学生信息的控制器方法
在这里插入图片描述
在这里插入图片描述
删除思路:
使用询问框与用户交互 → 用户确定信息 → 执行数据提交 → 控制器执行删除方法 → 通过参数将信息再次传输到页面 → 页面接收信息执行删除操作

核心代码:myModels.PW_UserRoleDetail.Remove(要删除的表格);(删除数据集的数据)
myModels.SaveChanges(); (删除数据库的数据)

书写代码逻辑:将需要删除的数据查询出来在进行删除
(1) 若有对应的子数据存在需先删除对应的子数据信息
(详细可以看下图的有对应的年级不可进行删除、有对应的教师用户不可进行删除)
(2) 若是批量删除需要使用for循环遍历删除数据
(详细可以看批量删除代码图中的for遍历循环删除)
代码运行:
页面项控制器发送请求数据 → 控制器接收 → 向数据库提取数据 → 数据库再返回给控制器 → 控制器再通过传参将数据传到页面
在这里插入图片描述
在这里插入图片描述
书写代码时避免发生错误的注意点(避雷区):
(1)function (obj) obj不定义无法使用运行时会报错
eg:
单条删除的代码图中如果不定义function(returnJson)就会报下面的错

报错代码:Uncaught ReferenceError: obj is not defined

(2){ 控制器参数: 自定义参数 },若前者参数与控制器不对应则报500错 数据也无法回填
eg:
在$.post("DeleteStudent", { studentIDs: strIds }, function (returnJson) {…}代码中studentIDs不与控制器的public ActionResult DeleteStudent(string studentIDs){…}代码中的studentIDs保持一致浏览器运行项目时则会报下面的错误

报错代码:Failed to load resource: the server responded with a status of 500 (Internal Server Error)

(3)取消弹出模态框的误点操作,背景是不关闭模态框,按下esc时也不关闭模态框,并且打开模态框。必须要点击关闭按钮才可以关闭model

代码:$(“#modalUpdate”).modal({backrop:’static’,keyboard:false});

(4)使用single()需加try{}catch{};捕捉一下异常
原因:输出0条数据或者大于等于2条数据就会出现异常

(5)避免VS提示e未使用的警告

代码:
try(){。。。}
catch(Exception e){
Console.WriteLine(e);
}

并不会产出输出,主要是为了避免VS提示e未使用的警告

申明:代码图的代码来源于项目学习期间代码

猜你喜欢

转载自blog.csdn.net/weixin_44543219/article/details/89527812