登錄界面允許用戶登錄到系統中,用戶需輸入身份證號、密碼,根據數據庫來檢查登錄信息。如果登錄不成功,顯示合適的提示信息。成功登錄后,按照他們的角色跳轉到不同的主界面。 首先是登錄的界面
登錄的話,需要連接數據庫,因為數據庫我也不是特別的熟悉,所以有更好的方法可以艾特我。連接數據庫的方法有很多,詳細的方法可見網址:https://www.cnblogs.com/makqiq/p/5882351.html
下面就是我的方法了。首先呢,我先建立了一個類,這個類的名稱叫做DB,這個類就是專門用來連接數據庫,對數據庫進行增刪改查一系列操作的。
public static DataTable Select(string sql)//主要用來查詢數據庫 { DataTable dt = new DataTable(); using (SqlConnection conn = new SqlConnection("server=localhost;database=數據庫名稱;user id=sa;pwd=密碼")) { SqlDataAdapter data = new SqlDataAdapter(sql, conn); data.Fill(dt); } return dt; }
在登錄界面寫一個專門用來登錄的方法,也可直接寫在登錄按鈕事件上
public void LoginUser() {//RoleId是用來判斷身份的,在數據庫中用1,2,3,4對應不同的身份 DataTable dt = DB.Select("select Idnumber,Passwords,RoleId from 表的名字 where Idnumber='" + textBox1.Text +
"'and Passwords='" + textBox2.Text + "'"); if (dt.Rows.Count > 0) { DataRow theRow = dt.Rows[0]; switch (theRow["RoleId"].ToString()) { case "1": (new Login_panel("Competitor_Menu", textBox1.Text)).Show();//這里把輸入的身份證號碼也傳遞過去,因為登陸之后的信息需要顯示出來 this.Hide(); break; case "2": (new Login_panel("Coordinator_Menu", textBox1.Text)).Show(); this.Close(); break; case "3": (new Login_panel("Administrator_Menu", textBox1.Text)).Show(); this.Close(); break; case "4": (new Login_panel("Judger_Menu", textBox1.Text)).Show(); this.Close(); break; } } else if (textBox1.Text==null) { MessageBox.Show("IdNumber is not null"); } else if (textBox2.Text == null) { MessageBox.Show("Password is not null"); } else { MessageBox.Show("IdNumber or Password is error"); } }
這里看起來有點復雜,其實很簡單,這里是做的一個中間頁面模板,前面也講過了,因為頭部和尾部相同,所以只需要更換中間內容即可,(new Login_panel("Competitor_Menu", textBox1.Text)).Show();//這句話的意思就是去到一個叫做Login_panel的窗體里面,需要添加以下變量:
private string _WindowsName = "";//窗體的名字 private string _id = "";//傳過來的身份證號碼 SetPanel setPanel = new SetPanel();//實例化,這個類的作用就是更換面板的 public Login_panel(string WindowsName,string id) { _WindowsName = WindowsName; _id = id; InitializeComponent(); }
接下來在load事件里面:
private void Login_panel_Load(object sender, EventArgs e) { setPanel.ShowLogin(_WindowsName, panel_Dock,_id);//把窗體名字,需要添加的面板的名字,身份證號碼傳到下一個頁面中 }
setPanel類中的ShowLogin方法如下:
public void ShowLogin(String WindowsName, Panel panel, string id) { switch (WindowsName) { case "Administrator_Menu"://傳遞過來的窗體面工資 panel.Controls.Clear();//清空面板 Administrator_Menu am = new Administrator_Menu(id); am.TopLevel = false; am.FormBorderStyle = FormBorderStyle.None;//去除邊框 panel.Controls.Add(am);//添加面板 am.Show(); break; case "Competitor_Menu": panel.Controls.Clear(); Competitor_Menu cm = new Competitor_Menu(id); cm.TopLevel = false; cm.FormBorderStyle = FormBorderStyle.None; panel.Controls.Add(cm); cm.Show(); break; } }
這里只寫了兩個,只要把自己需要的填補上去就ok了。這次分享到這里就結束了,有疑問可以留言評論哦!