哈喽,你好啊,我是雷工!
本节记录密码修改功能,为了保证账号的安全性,不定时的修改密码是必要操作;
以下为练习笔记。
01 效果演示1.1、未输入原密码时
1.2、未输入新密码时
1.3、未输入新密码确认时
1.4、两次输入的密码不一致时
1.5、密码修改成功
02 添加窗体添加一个密码修改窗体命名为:FrmChangePwd;
然后开始添加背景素材,添加控件布局,UI效果如下图所示:
主要控件及属性设置如下表:
控件名称
设置属性
属性值
备注
Lable1
Text
原密码:
BackColor
Transparent
背景设置为透明
Lable2
Text
新密码:
Lable3
Text
新密码确认:
TextBox1
BackColor
FixedSingle
(name)
txtOldPwd
原密码框名
TextBox2
BackColor
FixedSingle
(name)
txtNewPwd
新密码密码框名称
UseSystemPasswordChar
True
密码框非明文
TextBox3
BackColor
FixedSingle
(name)
txtVerifyPwd
新密码密码框名称
Button1
FlatStyle
Flat
设置无边框
Text
确认修改
BackColor
Highlight
设置背景色
ForeColor
White
设置字体文本色
(name)
btnChange
确认修改按钮名
Button2
FlatStyle
Flat
设置无边框
Text
取消
(name)
btnCancel
取消按钮名
03 修改方法首先在管理数据访问类SysAdminService中添加修改密码的方法。
代码如下:
/// <summary>/// 修改登录密码/// </summary>/// <param name="objAdmin"></param>/// <returns></returns>/// <exception cref="Exception"></exception>public int ChangePwd(SysAdmin objAdmin){ string sql = "update Admins set LoginPwd='{0}' where LoginId={1}"; sql = string.Format(sql, objAdmin.LoginPwd, objAdmin.LoginId); try { return SQLHelper.Update(sql); } catch (Exception ex) { throw new Exception("修改密码出现数据访问错误:" + ex.Message); }}04 确认修改按钮3.1、添加事件
双击【确认修改】按钮,添加对应事件,
3.2、事件思路
①信息验证,输入信息非空验证,一致性验证,长度验证;
②调用相应方法修改密码;
3.3、事件代码
//密码修改private void btnChange_Click(object sender, EventArgs e){ #region 输入验证 //非空验证 if (this.txtOldPwd.Text.Trim().Length==0) { MessageBox.Show("请先输入原密码!","雷工提示"); this.txtOldPwd.Focus(); return; } if (this.txtNewPwd.Text.Trim().Length == 0) { MessageBox.Show("请输入新密码!", "雷工提示"); this.txtNewPwd.Focus(); return; } if (this.txtVerifyPwd.Text.Trim().Length == 0) { MessageBox.Show("请再次输入新密码!", "雷工提示"); this.txtVerifyPwd.Focus(); return; } //判断用户输入的原密码与当前登录密码是否一致 if(this.txtOldPwd.Text.Trim()!=Program.currentUser.LoginPwd) { MessageBox.Show("输入的原密码错误!", "雷工提示"); this.txtOldPwd.Focus(); this.txtOldPwd.SelectAll(); return; } //判断新密码的长度 if(this.txtNewPwd.Text.Trim().Length<6) { MessageBox.Show("新密码长度需大于6!", "雷工提示"); this.txtNewPwd.Focus(); this.txtNewPwd.SelectAll(); return; } //判断两次输入密码是否一致 if(this.txtNewPwd.Text.Trim()!=this.txtVerifyPwd.Text.Trim()) { MessageBox.Show("两次输入的密码不一致!", "雷工提示"); this.txtNewPwd.Focus(); this.txtNewPwd.SelectAll(); return; } #endregion try { SysAdmin objAdmin = new SysAdmin() { LoginId = Program.currentUser.LoginId, LoginPwd = this.txtNewPwd.Text.Trim() };if(new SysAdminService().ChangePwd(objAdmin)==1){ MessageBox.Show("密码修改成功!", "雷工提示"); Program.currentUser.LoginPwd = this.txtNewPwd.Text.Trim(); this.Close();} } catch (Exception) { throw; }}05 取消按钮//取消密码修改private void btnCancel_Click(object sender, EventArgs e){ this.Close();}06 后记以上为修改密码的练习过程,其实验证部分还不够完善,像不允许特殊字符,不可与原密码相等,是否显示密码,都暂未设置,
还有哪些与实际中不符的欢迎大佬们评论指出,
更多相关话题也可以在交流群探讨。