上一期我们完成了欢迎登录和信息查询的功能,那么我们这一期就来实现一下密码修改。
行动计划
开始密码修改之前,我们老规矩,来制定一下计划。寻常的修改密码需要具备哪几个要素呢
- 输入自己的账号
- 确认用户数据库里存在这个账号
- 输入自己的旧密码
- 需要判断是否正确
- 输入新密码
- 再次输入新密码
- 需要判断两次输入的新密码是否相同
- 一个确认修改的按键
- 一个返回的按键
如下图所示
创建用户信息数据库
计划设计好之后,我们就先来创建一个存储用户信息的数据库吧,总不能把实验室设备的信息和用户的信息放在一个数据库里吧。那么打开我们的Navicat for MySQL,右键左边的空白部分——新建数据库——按下图选择。
然后我们来新建一个表,用这个表来存储我们用户的信息,既然是存储用户信息的肯定是需要有id、密码、姓名等啦。双击我们创建的数据库——右键表——点击新建表——如第二张图。
建立好表之后,我们可以自己先把一个用户的信息输入进去,以便后面测试密码修改的功能。
后面板连线
初始化
老规矩,我们先来初始化一下,我们这次对四个字符串输入控件初始化,一样的是在While循环外面。然后对我们上一期制作的枚举变量编辑一下项,因为我们这一期的功能里多加入了两个按键。不过这次的退出(返回)按键可以不加,和上一期的返回按键整合到一起就可以啦。如下。
确认修改
枚举变量编辑好了之后,我们就可以在条件结构中右击——在后面添加分支,然后就可以在条件结构中看到多了确认修改的部分。不过也别忘了我们的事件结构也需要更新呀。
我们接下来就转到条件结构的确认修改部分
确认id
根据前面制定好的计划,我们首先要完成的就是确认用户数据库里有我们输入的这个id
我们可以把我们输入的id放到数据库中去查询,如果查到了这个id,那么我们输入的这个id就是正确的,如果查询为空的话,那么这个id就是错误的啦。
判断旧密码是否正确
判断旧密码是否正确也是相同的操作,利用我们输入的id去查询这个id匹配的密码,如果查出来和我们输入的旧密码相同,那么就是正确的。如果查出来不相同,那么就是错误的啦。当然,我们还可以多加一个判断,就是判断id不为空,就是说我们输入的id不能为空值。
最后我们用一个复合运算控件,把这三个判断的最终值“与”运算一下 ,这样就可以完成这三个判断都必须正确才能修改密码啦。
最后我们把复合运算的值连接一个条件结构,如果值为假的话,我们可以给用户一点提示啦,并且把我们输入的id等清空。
判断两次输入的新密码是否相同
我们复合运算的值如果为真的话,就可以进入下一步判断啦—— 判断两次输入的新密码是否相同。我们在后面又可以连接一个条件结构,如果不相同,就可以像我们之前的操作一样,给用户一点提示,并且清零一些控件。但是如果为真的话,那我们就可以开始修改用户数据库中的密码啦。
修改用户数据库中的密码
通过前面的一系列判断,我们这里就可以保证输入的所有值都是正确的啦,那我们修改密码的时候就可以直接凭借我们输入的id来确认修改的地方。
我们这里利用MySQL语句update来修改,这个是可以具有更新功能的,也就是可以覆盖之前所有信息,这样就不用我们删除之前的密码啦。
结尾
结尾部分我们就需要这个程序回到默认状态啦,并且我们这里还可以初始化一下,以防数据堆积。
效果演示