MVC新增、删除

MVC新增、删除

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:

作者:梁柏源

撰写时间:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这次分享的是MVC中的增、改、删、查中的查和删。

首先,先讲“查”:MVC中的“查”与数据库中的有所差别;

与数据库中查询不同,在数据库中查询是这样的例如:多表查询

SELECT   学院表.院系名称, 专业表.专业名称,

    专业表.国家专业编码, 专业表.学制,专业表.培养层次,

    专业表.年级,班级表.班级名称,学生表.学号,学生表.姓名

FROM      学院表 INNER JOIN

专业表 ON 学院表.院系ID = 专业表.院系ID INNER JOIN

班级表 ON 专业表.专业ID = 班级表.专业ID INNER JOIN

学生表 ON 班级表.班级ID = 学生表.班级ID

where 学院表.院系ID=3 and 专业表.年级=2018

    and 班级表.班级名称='1803'

(注意:数据库中查询的时候标点符号要用英文状态下的)

但与数据库一样,查(select)是最复杂的,“查”:有几种分别为最简单的单表查询(含有(1)查询所有列和(2)查询部分列)还有复杂的多表查询(两个表查询或三个表连接)和条件查询;

废话不多,进入正题:

public ActionResult Select (int TitleID)

        {

            try

            {

                var exercise= (from tbTitle in myModel.PW_Title

                                 join tbTitleType in myModel.SYS_TitleType on tbTitle.TitleTypeID equals tbTitleType.TitleTypeID

                                 where tbTitle.TitleID == TitleID

                                 select new

                                 {

                                     tbTitle.Stem,

                                     RightKey = tbTitle.RightKey,

                                     TitleType = tbTitleType.TitleType.Trim()

                                 }).Single();

                return Json(exercise, JsonRequestBehavior.AllowGet);

            }

            catch (Exception e)

            {

                return Json("", JsonRequestBehavior.AllowGet);

            }

        }

这是一段根据题目的ID查询题目的信息,首先来个public ActionResult 给个名称ID,然后相对于数据库中的查询逻辑差不多,比较抽象,var 后就比较重要了,大致是讲从什么表中找到什么的数据

最后返回就行。对了还有myModel这个是数据库的实例化具体实例化是这样的

Models.CQUPTEntities myModel = new Models.CQUPTEntities();

还可以简化成这样CQUPTEntities myModel = new CQUPTEntities();

是不是觉得和上面的数据库查询有点像SELECT     FROM  还有from

  Join   in   on   equals,其实意思都是一样的都是从什么表中找什么数据

下面开始查询备注123的信息:

查询成功后有3条备注着123的数据。

好的查询在这就完了,接下来是“删除(delete)”了,同样的拿数据库作对比

delete from  要删除数据所在的表

where 所在表的ID名称=要删除的数据ID

注意:在数据库中一条新增指令只能操作一个表,并且一定要注意是否启用where;建议启用 “键值ID”精确定位数据,以防删错数据或者多删。

然而在MVC中是这样的

public ActionResult Delete (int TitleID)

        {

            try

            {

                var title = myModel.PW_Title.Where(m => m.TitleID == TitleID).Single();

                myModel.PW_Title.Remove(title);

                myModel.SaveChanges();

                return Json(true, JsonRequestBehavior.AllowGet);

            }

            catch (Exception)

            {

                return Json(false, JsonRequestBehavior.AllowGet);

            }

        }

同样的套路:根据题目的ID删除信息,具体的与数据库删除的意思差不多,但在MVC中最好

还得有判断和选择,判断数据可不可以删除和删除的时候给客户再次确认是否删除,删除虽

简单但也要谨慎,毕竟与数据库挂钩,删了就很难找回来的(大多数找不回来,只有技术很高很高超的人才可以o( ̄▽ ̄)d )

$("删除按钮的ID").click(function () {

            $.ajaxSettings.async = false;

            var Return = 0;返回成功的数据

            var checkStatus = layuiTable.checkStatus('tabTitles').data;

            if (checkStatus.length > 0) {

                layer.confirm("是否需要删除选择的试题?", { icon: 6, offset: '100px;' }, function (index) {

                    layer.close(index);

                    if (JudgingState() == false) {

                        for (var i = 0; i < checkStatus.length; i++) {

                            $.ajax({

                                url: "DeleteTitles?TitleID=" + checkStatus[i].TitleID,//所需要的列表接口地址(控制器的方法)

                                async: false,

                                type: 'get',//数据传输通道的类型

                                dataType: 'json',//传输的数据类型

                                success: function (data) {

                                    if (data) {

                                        Return++;

                                    }

                                }

                            });

                        }

                        if (Return == checkStatus.length) {

                            tabTitleInforSearch();//刷新数据

                        }

                        else {

                            layer.alert("数据异常!");

                        }

                    } else {

                        layer.alert("不可删除的项!不能删除", { icon: 2, offset: '100px;' });//图标与大小

                    }

                });

            } else {

                layer.alert("请选择数据", { icon: 6, offset: '100px;' });

            }

        });

接下来就不多说直接看结果

展开阅读全文

没有更多推荐了,返回首页