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