程序员的日常操作—修改多表数据
作者:互联网
开发工具与关键技术:Visual Studio ASP.NET MVC
作者:刘剑鸿
撰写时间:2019年05月14日 星期二
程序员的日常操作—修改多表数据
单表修改与多表修改的操作步骤大同小异,都要运用到传递过来的参数,就是从页面新增传递过来的数据。接下来我们要在控制器里进行五步操作。1判断数据是否在数据库已经存在。3获取要修改的数据。3根据主键ID提取数据4执行修改5将修改的数据保存到数据库。步骤和单表的修改操作没什么不同,与多表新增更相似,新增也可以说是修改的操作。不过在多表修改操作里,并不是多张数据表一起修改,而是一张一张的修改。重点是要会判断先改哪张表。下面是两张关系表:
这两张关系表里很清楚的看到,用户表里面的主键(用户ID)作为学生表和用户角色明细表里面的外键.所以我们就先修改用户表,在修改学生表、用户明细表。其代码如下:
public ActionResult UpdateStudent(PW_Student pwStudent, PW_User pwUser, HttpPostedFileBase fileStudentImage)
{
ReturnJson returnJson = new ReturnJson();
try
{
//判断修改后的数据是否与数据库数据重复
var oldStudentRow = (from tbStudent in myModels.PW_Student
where tbStudent.studentID!= pwStudent.studentID &&
(tbStudent.StudentNumber == pwStudent.StudentNumber ||
tbStudent.StudentIDNum == pwStudent.StudentIDNum)
select tbStudent).Count();
if (oldStudentRow == 0)
{
var userCount = (from tbUser1 in myModels.PW_User
where tbUser1.UserID !=pwUser.UserID &&
(tbUser1.UserNuber == pwStudent.StudentNumber ||tbUser1.UniformAuthenticationCode == pwUser.UniformAuthenticationCode)
select tbUser1).Count();
if (userCount == 0)
{
//根据UserID将需要修改的用户表的数据提取出来
PW_User dbUser = (from tbUser in myModels.PW_User
where tbUser.UserID ==pwUser.UserID
select tbUser).Single();
//账号
dbUser.UserNuber =pwStudent.StudentNumber;
//密码(加密后的账号)
dbUser.Password =Common.AESEncryptHelper.Encrypt(pwStudent.StudentNumber);
//获取统一认证码
dbUser.UniformAuthenticationCode = pwUser.UniformAuthenticationCode;
//保存新的用户信息
myModels.Entry(dbUser).State= System.Data.Entity.EntityState.Modified;
//根据StudentID将需要修改的学生表的数据提取出来
PW_Student dbStudent = (from tbStudent in myModels.PW_Student
where tbStudent.studentID == pwStudent.studentID
select tbStudent).Single();
//身份证
dbStudent.StudentIDNum= pwStudent.StudentIDNum;
//学号
dbStudent.StudentNumber =pwStudent.StudentNumber;
//姓名
dbStudent.StudentName =pwStudent.StudentName;
//性别
dbStudent.StudentSex =pwStudent.StudentSex;
//学院ID
dbStudent.AcademeID =pwStudent.AcademeID;
//年级ID
dbStudent.GradeID =pwStudent.GradeID;
//专业ID
dbStudent.SpecialtyID =pwStudent.SpecialtyID;
//班级ID
dbStudent.ClassID =pwStudent.ClassID;
//图片
if (fileStudentImage!= null && fileStudentImage.ContentLength> 0)
{
//存放图片的变量
byte[] imgFile = null;
//变量长度
imgFile = new byte[fileStudentImage.ContentLength];
//读取图片存入变量
fileStudentImage.InputStream.Read(imgFile, 0,
fileStudentImage.ContentLength);
dbStudent.StudentPicture = imgFile;
}
//修改学生表信息
myModels.Entry(dbStudent).State = System.Data.Entity.EntityState.Modified;
//保存数据库
myModels.SaveChanges();
returnJson.State = true;
returnJson.Text = "考生信息修改成功!";
}
else
{
returnJson.State = false;
returnJson.Text = "该账号或统一认证码已经存在!";
}
}
else
{
returnJson.State = false;
returnJson.Text = "该学生信息已经存在,不需要重复录入!";
}
}
catch (Exception e)
{
Console.WriteLine(e);
returnJson.State = false;
returnJson.Text = "数据异常!";
}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
而在视图里,保存多表修改数据操作和单表修改数据操作原理没什么不同。其实无论是多表还是单表,新增操作和修改操作总是大同小异。主要有五步操作,1获取页面数据2判断输入框的数据不为空3进行异步提交4关闭模态框5刷新一下表格。下面是保存多表修改代码:
$("#btnSaveUpdate").click(function () {
//获取页面数据
var AcademeID = $("#formUpdateExaminee [name='AcademeID']").val();//学院ID
var SpecialtyID = $("#formUpdateExaminee[name='SpecialtyID']").val();//专业ID
var GradeID = $("#formUpdateExaminee [name='GradeID']").val();//年级ID
var ClassID = $("#formUpdateExaminee[name='ClassID']").val();//班级ID
var StudentNum = $("#formUpdateExaminee [name='StudentNumber']").val();//学号
var UniformAuthenticationCode = $("#formUpdateExaminee [name='UniformAuthenticationCode']").val();//统一认证码
var StudentName = $("#formUpdateExaminee[name='StudentName']").val();//姓名
if (AcademeID > 0 && SpecialtyID > 0&& GradeID > 0 && ClassID > 0 && StudentNum != "" && UniformAuthenticationCode!= "" &&StudentName != "")
{
//加载层
var layerIndex = layer.load(0);
//提交表单
$("#formUpdateExaminee").ajaxSubmit(function (returnJson) {
//关闭加载层
layer.close(layerIndex);
if (returnJson.State == true) {
//关闭模态框
$("#modUpdateExaminee").modal("hide");
//刷新table
tabStudentSearch();
}
//提示信息
layer.alert(returnJson.Text, { icon: 0, title: '提示' });
});
}
else {
layer.alert('请填写完整信息', { icon: 0, title: '提示' });
}
});
标签:多表,修改,dbStudent,程序员,日常,var,pwStudent,returnJson,ID 来源: https://blog.csdn.net/weixin_44538469/article/details/90292885