数据库于MVC的增查删改之改
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio 2015、MVC改
作者: 梁柏源
撰写时间:2019/4/11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
数据库和MVC都有新增、修改、删除、查询,上次讲了删除和查询,这次不意外也讲新增和修改,
首先先讲修改在数据库中修改比较简单,假设我要修改项目表中的某项数据,过程如下:
数据库的修改(update)
update 项目表
set 项目名称='800米长跑',运动员编码='06',项目简称='长跑'
where 项目ID=110
(上面是原来的数据)
update 项目表(要修改的表)
set 项目名称='100米短', 运动员编码='09', 项目简称='短跑'(要怎样修改)
where 项目名称='800米长跑',运动员编码='06',项目简称='长跑'(要修改那些项)
就这样在点一下执行就OK了。
在MVC中的修改要判断修改后的数据是否与数据库中的相同,然后在将需要修改的数据提取出来,修改后再保存数据库,是不是很繁琐,其实大致还是和数据库的修改差不多,就是多了要判断及提示的步骤
public ActionResult Update (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); //密码(加密后的账号)
myModels.Entry(dbUser).State = System.Data.Entity.EntityState.Modified; //保存新的用户信息
PW_Student dbStudent = (from tbStudent in myModels.PW_Student
where tbStudent.studentID == pwStudent.studentID
select tbStudent).Single();//根据StudentID将要修改的学生表数据提取出来
dbStudent.StudentIDNum = pwStudent.StudentIDNum; //身份证
dbStudent.StudentNumber = pwStudent.StudentNumber; //学号
dbStudent.StudentName = pwStudent.StudentName//姓名;
dbStudent.StudentSex = pwStudent.StudentSex; //性别
dbStudent.AcademeID = pwStudent.AcademeID; //学院ID
dbStudent.GradeID = pwStudent.GradeID; //年级ID
dbStudent.SpecialtyID = pwStudent.SpecialtyID; //专业ID
dbStudent.ClassID = pwStudent.ClassID; //班级ID
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);
}
下面是运行的结果
一开始是上面一样的,然后我改成下图所示
完了之后点击保存,OK了,修改结果如上图所示(第二幅)