![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=1738906728-ijC64ceoeBzjJpCwmUwjnIi5oCnD4UjI-0-495f7fe12768becdf78092373464e53a)
视频讲解
3.5.1 登录模块概述
系统登录主要用于对进入人事工资管理系统的用户进行安全性检查,以防止非法用户进入系统。在登录时,只有合法的用户才可以进入系统。系统登录窗体运行结果如图3.23所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_24345.jpg?sign=1738906728-0iroh9kj5ZoZaB0AIm06W23oyzvBtFtH-0-218a871bed6a650f24b3f88acae500a8)
图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=1738906728-IF9ksPbaqy7bqm3MdgAKf3mmVk29aH5I-0-801ca94bc7ebdcd8eecc5af19f1a77b1)
图3.24 SqlDataReader对象的使用
以下代码体现了SqlDataReader对象的Read()方法和HasRows属性的具体应用。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P113_52471.jpg?sign=1738906728-SoWcGNJ1O3DWWj5DBiS7Vunsm217K3ku-0-f82d101aed0baabe2f4e827aeeb6e305)
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=1738906728-SgNWqXR4ld0hWmS8DcpnkMrgMKbN2yzv-0-1952e09ee66a3dd106d72691114782c9)
(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=1738906728-uWv6oOVnwvfZurLQ7o8F6NAIL33nv96x-0-6ef86024a7af594ce52c8dde584a4ca0)
代码贴士
❶ if语句:使用if语句判断用户输入的用户名和密码是否为空。
❷ MyConnection():自定义的MyConnection()方法用于得到SqlConnection数据库连接对象。
注意
事件的执行过程中,可以使用return关键字退出事件。在本系统的登录事件中,首先判断用户输入的用户名或密码是否为空,如果为空,则弹出消息对话框,提示“用户名或密码不能为空!”,然后使用return关键字退出事件。