开发工具与关键技术:VS, ASP.NET MVC
作者:谭威
撰写时间:2019年5月1日
在我讲解修改代码之前,我得先声明我自定义的ReturnJsonVo和AESEncryptHelper这两个类,ReturnJsonVo这个类中有State(状态)、Code(状态码)、Text(文本)、Object(附加数据)这四个字段;AESEncryptHelper这个类就是一个用来加密的方法,了解一下就好;在下面我会给到新增的代码图,不过由于新增的代码过长,这里我就只描述Visual Studio 2015控制器的新增代码,同时这张图被我截成三部分,不过在里不需要为找不到代码而担心,因为我这里安装一个虚线插件的,这里每有一个大括号,下面将会有对应的一条线,(这里的意思是每一条虚线从大括号起始位置一直到大括号的末端)可以看到最外边的线一直到连接最后张图,第二条我用实线连接了,第三条有一点淡蓝色(短的我就不讲了),第四条到我鼠标按到的那个地方。接下来我将给到三张截图:
当Visual Studio 2015的视图发送请求过来,同时还把我修改后的表单值传送过来,然后我用PW_User的实例化名字(pwUser)和PW_Employee的实例化名字(pwEmployee)来接收到这些表单值;然后我实例化ReturnJsonVo的一个对象,再给他的状态设置为false,其实也可以不设置的,因为它是bool类型的,其默认值就是false;接着我用try捕获异常,当捕获到异常时,它将会跳到catch, ReturnJsonVo的状态为false(这里并没有写ReturnJsonVo.State=false,其实是因为之前我在实例化这个类时,同时不是也设置这个状态吗,所以每次要声明状态时,如果我没有改,它就默认这一句,所以就不用打这么多重复的代码),ReturnJsonVo的文本为参数异常,就返回到视图;当没有捕获到异常时,我声明一个int类型的countEmployee来接收一个数值,后面大半段的意思是我实例化PW_Employee这张表,查询出除去我修改这条数据的其它所有的数据的电话、手机、编号跟我修改进来的电话、手机、编号比较后重复了多少条,这个数值就是重复的多少条数据;然后再判断countEmployee是否等于零,若不等于,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为数据库已存在该员工信息,不需要重复录入!,返回到视图;若等于零,我声明dbUser来存放我根据传送进来的UserID来找到数据库中所对应的员工用户信息(也就是这个员工在PW_User的所有字段),然后我再声明一个int类型的countUser来接收一个数值,后面大半段的意思是我实例化PW_User这张表,查询出除去我要修改这条数据的其它数据的用户账号跟我修改后的用户账号比较后重复多少条,这个数值就是重复的多少条数据;
接着在判断countUser是否等于零,若不等于零,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为该员工的用户账号已存在数据库中,不需要重复录入!,返回到视图;若不等于零,则再修改用户表,将数据库中的用户账号(UserNuber)改成修改后的用户编号、密码(Password)改成修改后的用户编号且进行加密、状态(ToVoidNo)可以不用改,原本就是true,然后就保存到数据库中。
接着我再声明dbEmployee来存放我根据传送进来的EmployeeID来找到数据库中所对应的员工信息(也就是这个员工在PW_Employee的所有字段),则再修改员工表,将数据库中的部门ID(DepartmentID)改成修改后的部门ID,职位ID(PositionID)改成修改后的职位ID,用户ID(UserID)改成修改后的用户表传送过来的用户ID,员工姓名(EmployeeName)改成修改后的员工姓名,员工编号(EmployeeNumber)改成修改后的员工编号,电话(Phone)改成修改后的电话,手机(Cellphone)改成修改后的手机,地址(Address)改成修改后的地址,备注(Remark)改成修改后的备注,然后就保存到数据库中。
最后再判断数据库中的变化是否大于零,若不大于零,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为修改失败,返回到视图;若大于零,则ReturnJsonVo的状态为false,ReturnJsonVo的文本为修改成功,返回到视图;