开发工具与关键技术:vs 数据新增
作者:黄海峰
撰写时间:2019.05.14
在员工新增界面新增员工数据的时候,需要对三张表进行数据增加,分别是用户表、用户明细表以及员工表。新增数据时我们需要判断数据是否和数据库已有的数据重复,判断通过后我们根据表之间的关系按照用户表、员工表、用户明细表(员工表和用户明细表的顺序可以互换)的顺序依次增加数据。
public ActionResult声明一个定义,方法名自己定义,然后声明新的用户表和员工表来接收数据PW_Employee pwEmployee, PW_User pwUser。然后通过接收到的员工数据和数据库作对比,查询是否有数据重复
int countEmployee = (from tbEmployee in myModels.PW_Employee
where tbEmployee.EmployeeNumber == pwEmployee.EmployeeNumber || (tbEmployee.EmployeeName == pwEmployee.EmployeeName && (tbEmployee.Cellphone == pwEmployee.Cellphone || tbEmployee.Phone == pwEmployee.Phone))
select tbEmployee).Count();
如果没有数据重复就继续,接下来判断与用户表的数据是否有重复,
int countUser = (from tbUser in myModels.PW_User
where tbUser.UserID == pwUser.UserID
select tbUser).Count();
如果countUser==0那么就可以开始新增数据了,我们首先新增用户表的数据,由于这里用户的账号和密码都是由员工编号决定的,所以我们就把接收到的员工编号分别赋值给我们声明的用户表的账号和密码字段,另外在这里我们对用户的密码进行了加密,然后我们就可以直接保存数据到数据库了。
pwUser.UserNuber = pwEmployee.EmployeeNumber;
pwUser.Password = Common.AESEncryptHelper.Encrypt(pwEmployee.EmployeeNumber);
myModels.PW_User.Add(pwUser);
用户表新增成功后我们声明一个userId用来获取新增的用户ID var userId = pwUser.UserID;
然后将userId赋值给员工表的UserID外键,连接表与表之间的关系 pwEmployee.UserID = userId;
赋值完后保存数据到数据库的员工表 myModels.PW_Employee.Add(pwEmployee);
员工表新增成功后就新增用户明细表了,声明一个新的用户明细表
PW_UserRoleDetail pwUserRoleDetail = new PW_UserRoleDetail();
将获取到的userId同样赋值给用户明细表的UserID pwUserRoleDetail.UserID = userId;
pwUserRoleDetail.UserTypeID = 5;这里5代表着用户类型是员工,所以就直接赋值给用户明细表的用户类型ID,然后直接保存到数据库 myModels.PW_UserRoleDetail.Add(pwUserRoleDetail);
public ActionResult InsertEmployee(PW_Employee pwEmployee, PW_User pwUser)
{
ReturnJsonVo returnJson = new ReturnJsonVo();
returnJson.State = false;
try
{
//判断数据库是否存在该员工信息
int countEmployee = (from tbEmployee in myModels.PW_Employee
where tbEmployee.EmployeeNumber == pwEmployee.EmployeeNumber ||
(tbEmployee.EmployeeName == pwEmployee.EmployeeName &&
(tbEmployee.Cellphone == pwEmployee.Cellphone
|| tbEmployee.Phone == pwEmployee.Phone))
select tbEmployee).Count();
if (countEmployee == 0)
{
int countUser = (from tbUser in myModels.PW_User
where tbUser.UserID == pwUser.UserID
select tbUser).Count();
if (countUser == 0)
{
//根据各表之间的关系,表格新增的顺序为:用户表->员工表->用户角色明细表(其中员工表和用户角色明细表新增顺序可以互换)
//新增用户表
pwUser.UserNuber = pwEmployee.EmployeeNumber;
pwUser.Password = Common.AESEncryptHelper.Encrypt(pwEmployee.EmployeeNumber);
myModels.PW_User.Add(pwUser);
if (myModels.SaveChanges() > 0)
{
//获取新增的用户id
var userId = pwUser.UserID;
//新增员工表
pwEmployee.UserID = userId;
myModels.PW_Employee.Add(pwEmployee);
if (myModels.SaveChanges() > 0)
{
//用户角色明细表新增
PW_UserRoleDetail pwUserRoleDetail = new PW_UserRoleDetail();
pwUserRoleDetail.UserID = userId;
pwUserRoleDetail.UserTypeID = 5;
myModels.PW_UserRoleDetail.Add(pwUserRoleDetail);
if (myModels.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = “员工信息录入成功!”;
}
else
{
returnJson.Text = “用户明细表保存失败!”;
}
}
else
{
returnJson.Text = “员工表保存失败!”;
}
}
else
{
returnJson.Text = “用户表保存失败!”;
}
}
else
{
returnJson.Text = “该用户已存在!”;
}
}
else
{
returnJson.Text = “数据重复,该员工信息已存在,不需要重复录入!”;
}
}
catch (Exception e)
{
Console.WriteLine(e);
returnJson.Text = “数据异常”;
}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}