ASP.NET.MVC修改数据

开发工具与关键技术:VS   修改
作者:听民谣的老猫
撰写时间:2019/4/17   15:15

总结一下信息管理的修改部分(省略前端)。

______ 修改

首先在设置操作按钮时要确保获取到了所有数据的ID值,以为我们是通过ID来查询信息,如果你在这里出现错误的话就会导致数据的回填失败。
在这里插入图片描述

  • 根据ID查询信息(控制器部分)
 public ActionResult selectEmployeeById(自定义方法名)(int EmployeeID(上面设置操作按钮时封装好的参数)) {
EmployeeVo EmployeeInfo(自定义名称) = (from tbEmployee(自定义的表名) in myModels.PW_Employee(连接的表)
(EmployeeVo在我写的关于查询的博客中有讲过,它是一个封装类)
join tbUser(自定义的表名) in myModels.PW_User(连接的表) on tbEmployee.UserID(连接的条件) equals tbUser.UserID(连接的条件)
where tbEmployee.EmployeeID(查询条件) == EmployeeID
select new EmployeeVo
{ (为自定义类的每个字段赋值)
              EmployeeID = tbEmployee.EmployeeID,
              UserID = tbUser.UserID
        }).Single();
                return Json(EmployeeInfo, JsonRequestBehavior.AllowGet);
(将查询出来的数据返回)
            }
  • 点击修改按钮弹出修改模态框(视图层部分)
//弹出修改的模态框
            function openUpdateModal(自定义)(mployeeID(自定义)) {
            //重置表单
            $("#formInsertExaminee(表单ID)").resetForm()
                });
            //查询考生信息,回填数据
            $.post("selectEmployeeById(获取修改数据的路径)", { EmployeeID(设置操作按钮时封装的参数): mployeeID(自定义) }, function (stuData) {
(stuData用来接收查询出来的数据)
                //下拉框数据绑定&数据回填
                createSelect("DepartmentID(下拉框ID)", "selectDepartment(下拉框数据查询方法)", stuData.DepartmentID);
(stuData.DepartmentID查询出来的数据中的DepartmentID)
                //其他表单数据回填
                loadDatatoForm("formUpdateExaminee(表单ID)", stuData);
                });
            //弹出模态框
            $("#modUpdateExaminee(模态框ID)").modal("show");
            }
  • 保存修改(视图层部分)
//保存修改
            function 自定义方法名() {
            //获取页面数据
            var 自定义A = $("#模态框ID [name='模态框文本框名称']").val();
            var 自定义B = $("#模态框ID [name='模态框下拉框名称']").val();
            ........      (按照上面同样的格式还有就继续获取)
            //数据完整性验证
            if ( 自定义B> 0 && 自定义A!= "" && ) {
(数据类型不同判断条件也不同)
             //加载层
             var load = layer.load();
             //提交表单
             $("#表单ID").ajaxSubmit(function (returnJson) {
                    //关闭加载层
                    layer.close(load);
                    if (returnJson.State) {
                        layer.msg(returnJson.Text, { icon: 1, title: "提示" });
                        //关闭模态框
                        $("#模态框ID").modal("hide");
                        //刷新表格
                        表格ID.reload();
  • 保存修改(控制器部分)
  public ActionResult 自定义(PW_Employee数据库的表 pwEmployee自定义){
(因为修改数据是把修改的数据传入到对应的表,pwEmployee是我用来接收修改数据的表对象)
                //判断信息是否与数据库已有数据重复
   int countEmployee(自定义) = (from tbEmployee(自定义) in myModels.PW_Employee
           where tbEmployee.EmployeeID != pwEmployee.EmployeeID &&
                ( tbEmployee.EmployeeNumber ==pwEmployee.EmployeeNumber ||
                 tbEmployee.EmployeeName == pwEmployee.EmployeeName)
(用接收到修改数据的pwEmployee与数据库中的PW_Employee做相应的数据比较,判断是否与已有数据重复)
                if (countEmployee == 0) {
                    //修改学生表
                    //提取需要修改的学生信息
                   PW_Employee Employee = (from tbEmployee in myModels.PW_Employee
                             where tbEmployee.EmployeeID == pwEmployee.EmployeeID
                              select tbEmployee).Single();
(通过tbEmployee.EmployeeID == pwEmployee.EmployeeID来提取到数据库中对应的表信息)
_____  笔记 
这里最容易因为获取不到EmployeeID导致数据异常。
(解决方法:就是你写前端修改模态框的时候是不是写了EmployeeID的隐藏域,并且隐藏域是否包含在提交数据的表单中,或者隐藏域的命名是否与数据库命名一致。)

(将数据库中的表信息替换成我们接受到的对应修改信息)
                    //编号
                    Employee.EmployeeNumber = pwEmployee.EmployeeNumber;
                    //姓名
                    Employee.EmployeeName = pwEmployee.EmployeeName;
                    //保存修改
                    myModels.Entry(Employee).State = EntityState.Modified;(修改关键句)
                    if (myModels.SaveChanges() > 0)
                    {
                        (判断数据库是否已经新增,也就是判断数据库是否发生改变)                     returnJson.Text = "修改成功^-^";
                    } 

猜你喜欢

转载自blog.csdn.net/weixin_44540236/article/details/89360751