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 = "修改成功^-^";
                    } 
發佈了31 篇原創文章 · 獲贊 21 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章