C#单表修改

修改和新增写法差不多,就多了个回填数据,因为修改前需要获取到它本来数据来改,回填之后就获取表单值的值,保存之前判断它和之前的数据是否有冲突就行了。

因为要回填所以要传参数到数据库,如果data不为空就回填数据。

JS回填数据部分:

function openUpdate(academeID) { 
    //请求修改的数据 并回填
    $.post("/SystemManagement/CollegeInfor/selectAcademeById",
        { AcademeID: academeID }, function (data) {
            if (data != null) {
                //回填表单
                $("#UAcademeID").val(data.AcademeID);
                $("#UAcademeName").val(data.AcademeName);
                $("#UAcademeCode").val(data.AcademeCode);

                $('#modalUpdateAcademe').modal('show'); //打开模态框
            }else {
                layer.alert("参数异常");
            }
        }, 'json'); 
}

控制器回填数据部分:

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) {
        return Json(null, JsonRequestBehavior.AllowGet);
    }
}

和新增一样获取到表单值的值,strValIsNotNull是我写的一个公共的方法,数据不为空。然后通过post请求把参数控制器,新增成功了就关闭模态框刷新表格提示。

JS保存部分:

 function savaUpdate() { 
        var AcademeName = $("#UAcademeName").val();
        var AcademeCode = $("#UAcademeCode").val();
        var AcademeID = $("#UAcademeID").val();
    
        if (strValIsNotNull(AcademeName) && strValIsNotNull(AcademeCode)) {
            $.post("/SystemManagement/CollegeInfor/UpdateAcademe", {
                AcademeName: AcademeName,
                AcademeCode: AcademeCode,
                AcademeID: AcademeID,
            }, function (data) { 
                if (data.State) { 
                    $("#modalUpdateAcademe").modal('hide'); 
                    tabAcademe.reload();
                }
                layer.alert(data.Text);
            }, "json");
    }
     else {
            layer.alert('请填写完整', { icon: 0 });
        }
    }

和新增一样判断数据不为空,新增的话判断学院名称和学院代号是否重复就可以了,修改要加多判断ID是否重复,不重复的话就把它保存到数据库,myModel.Entry(sysAcademe).State = EntityState.Modified:把传进来的对象的状态改为修改,然后保存。

控制器保存部分:

  public ActionResult UpdateAcademe(SYS_Academe sysAcademe){
        ReturnJsonVo returnJson = new ReturnJsonVo();
        //判断数据
        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 == sysAcademe.AcademeCode.Trim())
                               select tbAcademe).Count();
    
            if (outherCount == 0) { 
                 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);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值