单表数据修改&保存

开发工具与关键技术:VS软件,单表数据修改&保存 
作者:陈隆
撰写时间:2019年05月06日

修改这个功能主要就是为了帮助用户或者管理员把已经保存好在数据库中的数据又拿出来显示到已经写好的修改表单中,也就是把数据库中已保存在数据库中的数据回填到所创建的修改表单中,可以让用户更方便的修改想要修改的数据或者想要删除的数据然后保存到数据库中,成功的保存到数据库中的数据就是已经修改成功的了,虽然修改数据这个过程是不难也不是最重要的,但是也不能少了保存的代码,保存的代码才是最重要的一部分,保存的代码是必不可少的,保存部分的代码才是最主要的代码,因为在表单中修改了用户的数据,没有保存数据库是不可能自动保存到数据库的,只有靠编写保存的代码来实现保存了,如果修改了数据而没有保存这个功能那是不是相当于没写一样吗。想想只是修改了数据而每有保存到数据库那是不是也就一点意义也每有的呢。那么修改需要用到的HTML代码只是需要设计一个form表单来装需要修改的数据就可以了,这里就不写HTML部分的代码了。那下面就开始写修改的JS代码
(修改的js部分代码)
在这里插入图片描述
先自定义一个方法名,在小括号里传入需要修改的表的主键ID参数,然后打开修改模态框的时候先要重置一下表单,重置表单就是为了每次打开表单的时候清空上次回填的数据,如果不重置,那么肯定是不可以的,如果不重置表单就会每次的数据累加到表单中,那样的数据并不是数据库中真实的数据,也就是会不断的重复累加数据,那样就无法知道数据库中的数据到底是说明数据了,所以一定要先重置表单,重置其实就是清空表单中所有的数据,重置完上次的数据后,那么就需要把要修改的数据从数据库中查询出来回填到修改表单中给用户修改,回填需要请求控制器查询的数据然后传参数到控制器并由控制器把数据返回到页面,然后再判断如果返回过来的数据不等于null,这里不等于空的数据是在控制器中经过查询数据库中的数据查出来相应的数据的,那么就说明是有数据的并且是没有问题的数据,有数据的情况下就需要把数据回填到表单中,回填要先获取到需改表单中的input输入框的ID然后填入查询到的数据就可以了,有数据回填到修改表单中就可以打开模态框了,打开模态框需要先获取到模态框的ID一般来说都是form表单外面最外层的div就是那里的ID,如果没有数据的就返回一个弹框提示用户参数异常或者其他的提示就可以了,记住提示一定要和错误的内容有一定的相关关系才可以,要不然用户或者使用者都不知道到底是哪里出现的错误,这样就把修改的js部分代码完成了。下面就来写控制器的代码。
(修改部分控制器代码)

public ActionResult selectAcademeById(int AcademeID)
        { try
            { SYS_Academe academe = (from tbAcademe in myModel.SYS_Academe
                                       where tbAcademe.AcademeID == AcademeID
                                       select tbAcademe).Single();
                return Json(academe, JsonRequestBehavior.AllowGet);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return Json(null, JsonRequestBehavior.AllowGet);
            }}

其实控制器部分的代码并不多,也就是单单的一个主要的查询,首先就是把路径的名称复制到控制器中,防止打错,打错就肯定会出错,然后在小括号中填入页面中穿过来的参数,这里需要用到Single就用一个try、catch来捕获异常,然后就是查询数据库中的数据了,要查询数据库中的SYS_Academe这个表,查询这个表的某条数据然后赋值到参数传到页面,最后就是Single查询出的数据只能有一条就是正常的,如果不是一条就会触发异常,然后return Json返回就可以了,最后要把整个方法返回到页面就行了。然后就是到了保存的部分。(保存修改部分代码)
在这里插入图片描述
这里保存的js代码其实是简单的一部分就是获取到需要保存的数据然后经过判断,然后传到控制器经过判断然后判断是否有数据保存到数据库中,有数据就是保存成功了,没有数据保存到数据库中就是保存失败,一样是先要自定义一个方法名,然后获取表单中用户修改好的值,也就是输入框中的内容,或取input中的ID就可以获取到输入框中的内容了,有多少内容都是一样的获取就可以了,然后需要判断获取到的值,如果有数据就发送请求把数据发送到控制器,让控制器那边的判断来判断这里的数据是否有问题,如果判断没有数据就返回一个提示框提示用户请填写完整或者其他的相关提示都可以,然后如果控制器判断数据没有问题传到页面中的数据就可以判断数据是否保存成功了,如果成功就关闭模态框,关闭模态框要先获取到HTML代码中的模态框ID然后设计为hide就可以关闭了或者说是隐藏,然后把表格刷新就可以了,刷新表格直接获取到已经声明全局的表格ID,然后调用reload这个方法就可以实现刷新表格了,
的如果失败就返回data数据,这里的保存修改代码也不算复杂,接下来还有控制器的代码部分(保存修改控制器部分代码)

public ActionResult UpdateAcademe(SYS_Academe sysAcademe)
        { ReturnJsonVo returnJson = new ReturnJsonVo();
            returnJson.State = false;
            //判断数据
            if (!string.IsNullOrEmpty(sysAcademe.AcademeName)
                && !string.IsNullOrEmpty(sysAcademe.AcademeCode))
            {	   //检查其他的学院信息是否有冲突
                int outherCount = (from tbAcademe in myModel.SYS_Academe
                                where tbAcademe.AcademeID!=sysAcademe.AcademeID &&
                                (tbAcademe.AcademeName==sysAcademe.AcademeName.Trim()||
                                tbAcademe.AcademeCode==sysAicademe.AciademeCode.Trim())
                                select tbAcademe).Count();
                if (outherCount == 0)
                {	  //Linq 修改
                    myModel.Entry(sysAcademe).State = EntityState.Modified;
                    int intR = myModel.SaveChanges();
if (intR > 0)
                    {	  returnJson.State = true;
                        returnJson.Text = "修改成功";
                    }else{returnJson.Text = "修改失败";}
                }else{returnJson.Text = "和其他的学院信息重复!";}
            }else{ returnJson.Text = "数据不完整";}
            return Json(returnJson, JsonRequestBehavior.AllowGet); }

控制器的代码相对前面的代码来说比较麻烦了一点,多了几个判断,首先需要new一个ReturnJsonVo来装临时的数据,设置默认状态为false,然后判断传过来的参数是否有数据如果有就检查其他的学院信息是否有冲突,就是有没有相同,如果没有数据就return返回一个提示数据不完整或者其他相关的提示,如果有数据这里就需要查询一下数据库中相关的表,查询是否已经存在相同的数据,查询一共有多少条,如果等于0条数据,那就说明没有冲突也就是没有相同的数据,那就可以继续判断,如果大于0条数据那么就返回一个和其他的学院信息重复就行了,没有冲突就保存到数据中,然后还要判断一下保存的数据是否大于0条数据,如果大于0条数据那就提醒用户保存成功,如果不是大于0那就是没有数据保存到数据库,那就提示用户修改失败,最后把所有数据返回到页面就可以了,这样就完成了修改保存了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值