![C#项目开发全程实录(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/544/24172544/b_24172544.jpg)
3.5 登录模块设计
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_24385.jpg?sign=1738869885-6Nxhoxc5BzT211vSmIKiJmb6YJu0BTdo-0-74e588a025d5909d17ff5f40f862e09d)
视频讲解
3.5.1 登录模块概述
系统登录主要用于对进入人事工资管理系统的用户进行安全性检查,以防止非法用户进入系统。在登录时,只有合法的用户才可以进入系统。系统登录窗体运行结果如图3.23所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_24345.jpg?sign=1738869885-W0ENWgJzuC2HUb3mVXPY088e7XBtOd24-0-805ec785654f60c03ade8c3f1bce11f0)
图3.23 登录窗体
3.5.2 登录模块技术分析
登录窗体使用了SqlDataReader对象的Read()方法,从数据库中查找满足用户名和密码条件的数据,并使用SqlDataReader对象的HasRows属性判断是否已经找到指定的数据,如果找到数据记录则用户输入的用户名和密码正确,如果没有查找到记录,则用户输入的用户名或密码错误。
图3.24演示了SqlDataReader对象的Read()方法和HasRows属性的使用方法。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_24369.jpg?sign=1738869885-VbmvcW1ZjEj2WAC9dDwmt41ax274aquY-0-5cc3330cc0de10d99d0a0cbb24e6f96d)
图3.24 SqlDataReader对象的使用
以下代码体现了SqlDataReader对象的Read()方法和HasRows属性的具体应用。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_52471.jpg?sign=1738869885-P7nrXXYZGfxGw4DeXCG5epoJwc8UbA1f-0-17b8e8fa0a715c45044afe19278224cc)
3.5.3 登录模块实现过程
本模块使用的数据表:tb_User
(1)新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统登录功能,该窗体用到的控件及属性设置如表3.8所示。
表3.8 登录窗体用到的主要控件
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-T114_51748.jpg?sign=1738869885-5e9haXMHyYjeGo4G4WBzwkVY33kNNh5j-0-8978791683c2297d14888af6c8c45676)
(2)在登录窗体中,单击“登录”按钮,程序调用DBConnection类的MyConnection()方法连接数据库,然后通过SqlDataReader对象的HasRows属性判断用户输入的用户名和密码是否正确,如果正确,则登录人事工资管理系统,并将用户名传到主窗体中。否则,弹出“用户名或密码错误”信息提示。“登录”按钮的Click事件代码如下:
例程12 代码位置:资源包\TM\03\PMS\PMS\frmLogin.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P114_52475.jpg?sign=1738869885-WBQlyqqF5OsNzK1C7T6eA0cwbP8CJdXP-0-aaa09206c2b54324f847a8e837eacc8f)
代码贴士
❶ if语句:使用if语句判断用户输入的用户名和密码是否为空。
❷ MyConnection():自定义的MyConnection()方法用于得到SqlConnection数据库连接对象。
注意
事件的执行过程中,可以使用return关键字退出事件。在本系统的登录事件中,首先判断用户输入的用户名或密码是否为空,如果为空,则弹出消息对话框,提示“用户名或密码不能为空!”,然后使用return关键字退出事件。