3.9.5 用户管理界面的实现(3)
第14、15行代码实现获取列表框中被选中记录的用户名。实现方法是把获取的整个字符串去掉用户名后面的"["、"管理员"或"收银员"及"]"共8个字符。
第19~36行代码实现用户的原密码的获取。
上面的代码中用另一种方式实现了记录集字段数据的获取。使用函数GetCollect()获取数据,参数是字段名称。密码验证成功后,开始执行修改密码操作。实现代码参考如下:
- 37 if(m_oldpass!="") //原密码已经输入
- 38 {
- 39 UpdateData();
- 40 if(m_oldpass==oldpass) //原密码输入正确
- 41 {
- 42
- 43 if(m_newpass!="") //新密码已经输入
- 44 {
- 45 if(m_newpass==m_newpassr) //新密码确认正确
- 46 {
- 47 CString str;
- 48 _variant_t va;
- 49 str.Format("update tb_operator set operpassword='%s'
- 50 where opername='%s'",m_newpass,temp); //构造修改密码语句
- 51 m_pConnection->Execute(_bstr_t(str),&va,adCmdText); //执行修改密码操作
- 52 AfxMessageBox("修改成功!!\r\n");
- 53 AfxMessageBox("新密码为"+m_newpass+"!");
- 54 m_oldpass=m_newpass=m_newpassr="";
- 55 UpdateData(false);
- 56 ShowData(); //在列表框中显示数据
- 57 }
- 58 else //新密码确认不正确
- 59 {
- 60 AfxMessageBox("确认密码不正确!请重新输入!");
- 61 m_newpassr="";
- 62 UpdateData(false);
- 63 return;
- 64 }
- 65 }
-
- 66 else //没有输入新密码
- 67 {
- 68 AfxMessageBox("请输入新密码!");
- 69 return;
- 70 }
- 71 }
- 72 else //原密码输入不正确
- 73 {
- 74 AfxMessageBox("旧密码不正确!请重新输入!");
- 75 m_oldpass=m_newpass=m_newpassr="";
- 76 UpdateData(false);
- 77 return;
- 78 }
- 79 }
- 80 else //没有输入原密码
- 81 {
- 82 AfxMessageBox("请输入旧密码!");
- 83 return;
- 84 }
- 85 }
第40~65行代码通过执行SQL语句实现新密码的更改。
第66~84行代码实现各种错误信息的处理。
上面的代码中修改密码操作是通过"update表名set"语句实现的。获取用户名后,在数据表中查找该用户的原密码。先判断是否输入密码,再进行修改前密码验证。验证通过后,再对新密码和新密码确认验证。如果修改过程出错,给出对应出错信息。