C

雅轩聊科技 2024-07-19 22:12:49

哈喽,你好啊,我是雷工!

继续 练 习人员管理系统的用户登录的功能实现,

以下为练习笔记。

01 效果演示

①账号未输入时

②账号输入含非正整数字符时

③密码未输入时

④账号或密码输入错误时

⑤账号或密码输入正确时,直接显示主窗体

02 实现步骤

2.1、实现思路

登录窗体的通用实现思路

①输入信息验证;

②封装包含账号和密码的对象;

③和后台代码交互;

④处理交互结果,根据需要保存数据或返回值

2.2、正则表达式

为了使账号输入的内容为正整数,这里引入正则表达式。

①添加类

在Common通用文件夹中添加一个数据验证的类DataValidate

②实现代码

using System.Text.RegularExpressions;namespace PeopleManager.Common{/// <summary>/// 基于正则表达式的验证/// </summary>internal DataValidate {public static bool IsInteger(string txt) { Regex objReg = new Regex(@"^[1-9]\d*$");return objReg.IsMatch(txt); } }}

2.3、登录事件

根据编程思路实现登录按钮的编码;

代码如下:

//登录按钮事件private void btnLogin_Click(object sender, EventArgs e){ //①信息验证 if(this.txtAccount.Text.Trim().Length==0) {MessageBox.Show("请先输入登录账号!", "雷工提示");this.txtAccount.Focus();return; } if(!Common.DataValidate.IsInteger(this.txtAccount.Text.Trim())) {MessageBox.Show("登录账号必须为正整数!", "雷工提示");this.txtAccount.Focus();return; } if (this.txtPwd.Text.Trim().Length == 0) {MessageBox.Show("请先输入登录密码!", "雷工提示");this.txtAccount.Focus();return; } //②封装对象 SysAdmin objAdmin = new SysAdmin() {LoginId = Convert.ToInt32(this.txtAccount.Text.Trim()),LoginPwd = this.txtPwd.Text.Trim() }; //③后台交互 try {Program.currentUser=sysAdminService.AdminLogin(objAdmin);if(Program.currentUser!=null)//通过判断是否为空,即是否登录成功{ this.DialogResult = DialogResult.OK; this.Close();}else{ MessageBox.Show("账号或密码错误!", "雷工提示");} } catch (Exception ex) {MessageBox.Show(ex.Message,"数据信息访问操作异常"); }}

2.4、取消事件

取消时首先设置窗体的对话框结果为Cancel,然后关闭登录窗口;

代码如下:

//取消登录事件private void btnClose_Click(object sender, EventArgs e){ this.DialogResult = DialogResult.Cancel; this.Close();}03 插入数据

在数据库管理员表Admins中插入用户信息

插入语句:

use LeiGongPMDBgo--插入管理员信息insert into Admins (LoginPwd,AdminName) values(12345678,'雷工')insert into Admins (LoginPwd,AdminName) values(12345678,'熏悟空')

04 后记

以上是关于用户登录的UI实现,虽然可以实现但还有优化的空间,例如 当输完账号按回车键,光标可以直接跳转到密码输入框;

接下来再完成优化,有更好的实现方式欢迎留言评论,一起进步写出更优雅的代码;

有更多的相关话题也可以在交流群内沟通。

0 阅读:0

雅轩聊科技

简介:感谢大家的关注