来了老弟,数据删除

博客围绕项目中展示信息页面的数据删除展开,指出删除在逻辑上比新增与修改简单,但代码量更多。详细介绍了控制器上自定义方法的写法,包含实例化、判断语句等操作,还给出了执行删除的js代码,最后提及效果图及关联数据删除失败的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一些项目中的某些展示信息的页面上能直接把数据删除掉同时同步到后台是项目中必须要做的!删除呢,相对于新增与修改数据的方法来说是比它们简单的(但他的简单是在理论上(也就是逻辑操作),但代码量是比之它们最多的,因为要写到多个查询)。
至于方法呢就是我接下来要说的了(就拿一个项目中的例子来说吧,方法是写在控制器上的哈)

  public ActionResult DeleteAcademe(int academeId)
        {
            ReturnJson returnJson = new ReturnJson();
            try
            {
                //检查年级
                int intGradeRow = (from tbGrade in myModel.SYS_Grade
                                   where tbGrade.AcademeID == academeId
                                   select tbGrade).Count();
                if (intGradeRow > 0)
                {
                    returnJson.State = false;
                    returnJson.Text = "有对应年级,不能删除,请先删除对应的年级!";
                    return Json(returnJson, JsonRequestBehavior.AllowGet);
                }
                //检查专业
                int intSpecialtyRow = (from tbSpecialty in myModel.SYS_Specialty
                                       where tbSpecialty.AcademeID == academeId
                                       select tbSpecialty).Count();
                if (intSpecialtyRow > 0)
                {
                    returnJson.State = false;
                    returnJson.Text = "有专业对应,不能删除,请先删除对应的专业!";
                    return Json(returnJson, JsonRequestBehavior.AllowGet);
                }
                //删除学院
                SYS_Academe dbAcademe = (from tbAcademe in myModel.SYS_Academe
                                         where tbAcademe.AcademeID == academeId
                                         select tbAcademe).Single();
                myModel.SYS_Academe.Remove(dbAcademe);
                if (myModel.SaveChanges() > 0)
                {
                    returnJson.State = true;
                    returnJson.Text = "删除成功!";
                }
                else
                {
                    returnJson.State = false;
                    returnJson.Text = "删除失败!";
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                returnJson.State = false;
                returnJson.Text = "数据异常!";
            }
            return Json(returnJson, JsonRequestBehavior.AllowGet);
        }

在这里插入图片描述
写法:同样是控制器上一个自定义方法,这个方法里就是先实例化returnJson; 对了,要先给ReturnJson定义一下字段,之后就可以直接拿来用了,如上面的图那样(新增那篇也一样);然后就是try尝试,尝试里面有着四个if判断语句,前三个都是先把相关数据表的单条数据查询出来然后判断是否为false(假),为false就执行相对应的代码,就是删除失败,总的效果就是说跟这三个有关联起来的就删除不了,不为false则会执行后面的代码;之后也是先直接把要删除的单条数据查询出来,然后执行删除代码(myModel.SYS_Academe.Remove(dbAcademe););最后判断(myModel.SaveChanges() > 0)数据是否为真(true),是就提示成功删除了,否就执行控制器那边相应的提示删除失败代码。

下面是就是执行删除js代码

> function saveDelete(DacademeId)
>         {
>             layer.confirm(" 您确定要删除该学院信息?", { icon: 3, titile: "提示" }, function (index) {
>                 $.post("/SystemManagements/CollegeInfor/DeleteAcademe",
>                     { academeId: DacademeId }, function (returnJson) {
>                         //关闭加载层
>                         layer.close(index);                        
>                         if (returnJson.State == true) {
>                             //刷新table
>                             tabAcademe = layuiTable.reload('tabAcademe');
>                         }
>                         layer.alert(returnJson.Text);
>                     });
>             });
>         }

函数里先是弹出一个选择框;然后index回调函数;index回调函数里先是post提交方法,方法里获取控制器上的方法还有传递相关参数与returnJson回调函数;再就是关闭加载层(layer.close(index);)index;最后判断状态是否为true(真),是就删除成功然后刷新table(abAcademe = layuiTable.reload(‘tabAcademe’);)弹出提示框说删除成功,否就是执行控制器里的else代码。
效果图如下
在这里插入图片描述
在这里插入图片描述

而下图这种情况就是说有着其他数据与之关联着,所以执行else语句提示删除失败。
在这里插入图片描述
(提示框之类的都是用的layui插件代码,写法是jquery的写法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值