数据库单表的数据的修改

开发工具与关键技术:vs  修改
作者:黄海峰
撰写时间:2019.05.04

数据的修改是在原有的数据上进行的,我们用新的数据将原来的数据覆盖掉,这样数据库就会保存我们修改后的数据了,所以我们首先要获取原来的数据,数据库中每张表都会有一个唯一的主键ID,而这个主键ID就是我们获取原来的数据的条件了,修改需要在已经被查询出来的数据的基础上进行修改,所以我们在被查询出来的所有数据中获取单条数据的ID,通过这个ID进行数据回填,让这条数据的所有数据都显示在一个单独的页面,在这里我们有使用Boostrap的模态框模块,过程就是在MVC控制台中写入通过主键ID查询出相对应的数据的方法
public ActionRseult selectEmployeeById(int employeeID){
try{
PW_Employee dbEmployee = (from tbEmployee in myModels.PW_Wmployee
where tbEmployee.employeeID == employeeID
select tbEmployee).Single();
return Json(dbEmployee,JsonRequsetBehavior.AllowGet);
}
catch(Exception e){
Console.WriteLine(e);
return Json(null,JsonRequestBehavior.AllowGet)
}
}
由于还是使用Single()查询单条数据的方法,所以我们依然需要try catch来捕获异常,避免出现未查询到数据或者查询多条数据的情况出现,我们声明了一个员工表,再通页面传入的ID在数据库查询出这条数据,然后把这条数据放入我们声明的员工表里,return输出这个员工表。
控制台的查询方法写了之后就需要在HTML里写让这条查出来的数据分别放入相对应的表单文本框中,我们首先function封装一个函数,在里面写方法,我们先写一个清空表单的事件,避免我们打开模态框时会有数据残留,然后通过post路径请求控制台的方法,再将我们获取到的ID传过去,控制台接收到ID之后,通过ID查询数据后将数据返回回来,这个时候需要做个判断,if如果传过来的的数据不为空,那么就将数据分别放入相对应的文本框中,如果数据为空就返回一句”数据异常!”作状态描述。
function openUpdate(employeeID) {
$("#UformEmployee")[0].reset();
$.post("/Main/selectEmployeeById", { employeeID: employeeID }, function (data) {
if (data != null) {
$("#UemployeeID").val(data.employeeID);
$("#UemployeeNum").val(data.employeeNum);
$("#UemployeeName").val(data.employeeName);
$("#Utelphone").val(data.telphone);
$("#Uaddress").val(data.address);
$("#UmodalEmployee").modal(“show”);
} else {
layer.alert(“数据异常!”, { icon: 0, title: “提示” });
}
});
}
在数据回填完之后就打开模态框,注意在post请求传入ID时第一个ID参数要和控制台声明的int类型的ID一致,第二个参数是我们需要传过去的ID,要和js这边获取到的ID一致。
在数据回填成功之后我们就需要对数据进行修改,然后保存修改后的数据到数据库,但是到这里还没有结束,因为我们需要在保存之前做判断,判断保存的数据是否有没有和数据库的数据重复。
public ActionResult updateEmployee(PW_Employee pwEmployee) {
ReturnJson returnJson = new ReturnJson();
returnJson.State = false;
try{
if (!string.IsNullOrEmpty(pwEmployee.employeeNum) && !string.IsNullOrEmpty(pwEmployee.employeeName)
&& !string.IsNullOrEmpty(pwEmployee.telphone) && !string.IsNullOrEmpty(pwEmployee.address))
{
int otnerEmployee = (from tbEmployee in myModels.PW_Employee
where tbEmployee.employeeID != pwEmployee.employeeID
&& (tbEmployee.employeeNum ==pwEmployee.employeeNum.Trim() ||
tbEmployee.employeeName == pwEmployee.employeeName.Trim() ||
tbEmployee.telphone == pwEmployee.telphone )
select tbEmployee).Count();
if (otnerEmployee == 0)
{
myModels.Entry(pwEmployee).State = EntityState.Modified;
if (myModels.SaveChanges() > 0)
{ returnJson.State = true;
returnJson.Text = “修改成功!”;}
else
{returnJson.Text = “修改失败!”;}
}
else
{ returnJson.Text = “和其他的员工信息重复!”;}
}
else{ returnJson.Text = “数据不完整”; }
}
catch (Exception)
{ returnJson.Text = “数据异常!”;}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
这里声明了一个ReturnJson的静态类来描述这个保存的状态,这里判断的条件是对员工的编号、姓名以及员工的手机号进行判断,上面的数据库的员工ID不等于传入数据的员工ID是因为我们判断的是是否和数据库的其他数据重复,所以不需要对自身进行判断,只需要判断要保存的数据是否和其他的数据是否重复就行,当数据重复的时候,就不给与保存,数据不重复就保存到数据库,在数据库保存成功之后returnJson的状态就从false变成true,同时文本变成“保存成功”。最后我们通过json格式输出这个returnJson。
注:returnJson时声明的静态类方法。下面附加一张数据回填成功后的样式图。
数据库单表的数据的修改_第1张图片

你可能感兴趣的:(c#)