1.5 登錄模塊設計
1.5.1 登錄模塊概述
系統(tǒng)登錄主要用于對進入家庭視頻監(jiān)控系統(tǒng)的用戶進行安全性檢查,以防止非法用戶進入該系統(tǒng)。在登錄時,只有合法的用戶才可以進入該系統(tǒng)。系統(tǒng)登錄模塊的運行結果如圖1.11所示。
1.5.2 登錄模塊技術分析
登錄模塊的重點在于將用戶輸入的用戶名和密碼與數據庫中的用戶名和密碼進行比較,如果相同將允許用戶進入系統(tǒng)的操作界面;否則會彈出提示框,提示用戶輸入的用戶名或者密碼錯誤。該模塊的實現原理是,根據用戶輸入的用戶名和密碼在數據庫中查找是否有相符的記錄,并將查詢結果填充到DataSet數據集中,然后判斷該數據集中所包含表的行數是否大于零,如果大于零,則表示輸入的用戶名和密碼正確,從而成功登錄系統(tǒng);否則,彈出提示信息。
1.5.3 登錄模塊實現過程
本模塊使用的數據表:tb_admin
登錄模塊的實現過程并不復雜,具體實現步驟如下:
(1)新建一個Windows窗體,命名為frmLogin.cs,主要用于實現系統(tǒng)的登錄功能。該窗體用到的主要控件如表1.13所示。
(2)frmLogin.cs代碼文件中,首先實例化公共類DataCon和DataOperate的兩個全局對象,通過類對象調用類中的功能方法。實例化DataCon和DataOperate類對象的關鍵代碼如下:
例程11 代碼位置:光盤\TM\01\VWMS\VWMS\frmLogin.cs
DataCon datacon = new DataCon();
DataOperate dataoperate = new DataOperate();
單擊“登錄”按鈕,首先判斷是否輸入了用戶名,如果沒有輸入用戶名,彈出信息提示框,提示用戶名不能為空;否則,系統(tǒng)會判斷輸入的用戶名和密碼是否與數據庫中記錄相符。如果符合,則隱藏當前窗體,并顯示主窗體;否則,彈出“用戶名或密碼錯誤”信息提示。“登錄”按鈕的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鍵移動鼠標焦點的實現代碼如下: