这几天一直在烦恼一个问题:一般的公司员工在要离职之前都要提前申请离职,所以我在员工信息里加入了离职时间。我想要实现的效果是:当有员工离职之后,离职的员工的账号就不能再被使用,即账号的状态会在过了输入的离职时间之后自动的由启用变为禁用。而这个效果如何实现呢?下面是我暂时想出的解决方法。
1、 第一步:查询出所有的状态为启用的数据。
因为是单表,所以用最简单的Linq语句查询就可以,在三种简单查询中,使用匿名类型查询和List列表查询都可以,而Lambda表达式就不行了。因为是要查询出状态为启用的的账号,所以类型为“bit”的状态要使用“where”找寻的是“true”,因为查询的可能不止是一条数据,所以使用“ToList”转换列表。
2、 第二步:页面加载事件。
因为是要这个效果自动实现,不需要手动操作的,所以直接把它写在页面加载中,当页面加载时自动执行这个代码。
我在这里用到了“Date”时间,然后在获取星期,然后用if判断确保每一天都会执行下面的代码,但事实上这个判断可有可无。先是用post异步提交的方法获取查询到的数据,用for循环把ID一个一个地从中获取出来,用“;”拼接和区分;然后再用一个post方法把获取到的ID传递到数据库。
3、 处理数据。
因为要接收的数据可能有很多条,所以这里用string类型接收参数,事实上这里相当于批量修改。第一步判断数据是否为空,因为上面是用“;”把ID拼接起来的,所以这里还是用“;”作为标志把ID分割开,用Split分割。
将ID分割出来后,再用foreach循环,先将ID转换为int类型,然后查询出该ID的员工信息,判断其是否已经到了离职的时间,用现在时与离职时间比对。符合离职条件的员工数据就将其的状态改为false保存并记录离职人数,最后弹出提示。