登錄用戶驗證功能
1.主要功能
登錄界面與數據庫對接,實現登錄信息到數據庫服務器上驗證。
此系統共有收銀員,庫管員兩種身份登錄。
登錄用戶驗證功能--收銀員
登錄用戶驗證功能--庫管員
2.功能描述
登錄界面信息與后臺數據庫服務器對接,在登錄界面中首先選中正確身份,再輸入用戶名及相應密碼,只有與后臺數據庫中信息相匹配才能成功登錄系統。數據庫表則需要有相應的收銀員,庫管員兩種分別記錄兩種身份的人員的信息。表信息有工號(ID),姓名(NAME),密碼(PASSWORD),電話(PHONE)等信息。
收銀員數據庫表結構
庫管員數據庫表結構
3.ADO.NET查詢數據庫流程
ADO.NET查詢數據庫
4.查詢流程
(1)導入命名空間;
(2)定義數據庫連接字符串,創建Connection對象;
(3)打開連接;
(4)利用 Command對象的ExecuteReader()方法執行Select查詢語句;
(5)利用ExecuteReader()方法返回的DataReader對象讀取數據,顯示到界面上;
(6)關閉連接;
5.主要代碼
查詢構造命令:
select * from “表名”
連接字符串:
Data Source=.;Initial Catalog=SuperMarketSales;Integrated Security=True
總代碼:
String connStr = "Data Source=.;Initial Catalog=SuperMarketSales;Integrated Security=True";
SqlConnection sqlConn = new SqlConnection(connStr);
try
{
sqlConn.Open();
String sqlStr = "";
if (this.cbb_UserType.Text == "收銀員")
{
// 注意USER是SQL Server關鍵字,表名不能命名為USER,而應當用USERS
sqlStr = "select * from USERS where ID=@id and PASSWORD=@pwd";
}
else
{
sqlStr = "select * from ADMIN where ID=@id and PASSWORD=@pwd";
}
SqlCommand cmd = new SqlCommand(sqlStr, sqlConn);
// 注意是用用戶ID登錄,而不是用戶名,用戶名可能會重復
cmd.Parameters.Add(new SqlParameter("@id", this.tb_User.Text.Trim()));
cmd.Parameters.Add(new SqlParameter("@pwd", this.tb_Password.Text.Trim()));
SqlDataReader dr = cmd.ExecuteReader();
// 如果從數據庫中查詢到記錄,則表示可以登錄
if (dr.HasRows)
{
dr.Read();
UserInfo.userId = int.Parse(dr["ID"].ToString());
UserInfo.userName = dr["NAME"].ToString();
UserInfo.userPwd = dr["PASSWORD"].ToString();
UserInfo.userPhone = dr["PHONE"].ToString();
UserInfo.userType = this.cbb_UserType.Text;
MessageBox.Show(UserInfo.userType + "登錄成功");
if (UserInfo.userType == "收銀員")
{
// 顯示收銀員主界面
MainFormUser formUser = new MainFormUser();
formUser.Show();
// 隱藏登錄界面
this.Hide();
}
if (UserInfo.userType == "庫管員")
{
// 顯示庫管員主界面
MainFormAdmin formAdmin = new MainFormAdmin();
formAdmin.Show();
// 隱藏登錄界面
this.Hide();
}
}
else
{
MessageBox.Show("用戶名或密碼錯誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception exp)
{
MessageBox.Show("數據庫連接失敗");
}
finally
{
sqlConn.Close();
}