1.5 登录模块设计
1.5.1 登录模块概述
系统登录主要用于对进入家庭视频监控系统的用户进行安全性检查,以防止非法用户进入该系统。在登录时,只有合法的用户才可以进入该系统。系统登录模块的运行结果如图1.11所示。
1.5.2 登录模块技术分析
登录模块的重点在于将用户输入的用户名和密码与数据库中的用户名和密码进行比较,如果相同将允许用户进入系统的操作界面;否则会弹出提示框,提示用户输入的用户名或者密码错误。该模块的实现原理是,根据用户输入的用户名和密码在数据库中查找是否有相符的记录,并将查询结果填充到DataSet数据集中,然后判断该数据集中所包含表的行数是否大于零,如果大于零,则表示输入的用户名和密码正确,从而成功登录系统;否则,弹出提示信息。
1.5.3 登录模块实现过程
本模块使用的数据表:tb_admin
登录模块的实现过程并不复杂,具体实现步骤如下:
(1)新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统的登录功能。该窗体用到的主要控件如表1.13所示。
(2)frmLogin.cs代码文件中,首先实例化公共类DataCon和DataOperate的两个全局对象,通过类对象调用类中的功能方法。实例化DataCon和DataOperate类对象的关键代码如下:
例程11 代码位置:光盘\TM\01\VWMS\VWMS\frmLogin.cs
DataCon datacon = new DataCon();
DataOperate dataoperate = new DataOperate();
单击“登录”按钮,首先判断是否输入了用户名,如果没有输入用户名,弹出信息提示框,提示用户名不能为空;否则,系统会判断输入的用户名和密码是否与数据库中记录相符。如果符合,则隐藏当前窗体,并显示主窗体;否则,弹出“用户名或密码错误”信息提示。“登录”按钮的Click事件代码如下:
例程12 代码位置:光盘\TM\01\VWMS\VWMS\frmLogin.cs
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtName.Text == "")
{
u errorProName.SetError(txtName, "用户名不能为空!");
}
else
{
errorProName.Clear(); //清除错误提示信息
string strSql = "select * from tb_admin where name='" + txtName.Text + "' and pwd='" + txtPwd.Text + "'";
v DataSet ds = dataoperate.getDs(strSql, "tb_admin");
w if (ds.Tables[0].Rows.Count > 0)
{
this.Hide(); //隐藏当前窗体
frmMain frmmain = new frmMain(); //实例化主窗体对象
frmmain.Show(); //显示主窗体
}
else
{
MessageBox.Show("用户名或密码错误!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
U 代码贴士
u SetError:该方法用来设置ErrorProvider控件的提示信息。
v DataSet:根据用户输入的登录用户名和密码在数据库中查找记录,并填充到DataSet数据集。
w Count:该属性用来获得DataSet数据集中所包含表的行数。
当输入用户名或密码之后,还可以按Enter键将鼠标焦点移动到下一个控件上。实现原理是在输入用户名或密码的文本框的KeyPress事件下,判断是否按了Enter键,如果是,则将焦点移动到下一个控件上。按Enter键移动鼠标焦点的实现代码如下: