C# 窗體登錄,按照他們的角色跳轉到不同的主界面


登錄界面允許用戶登錄到系統中,用戶需輸入身份證號、密碼,根據數據庫來檢查登錄信息。如果登錄不成功,顯示合適的提示信息。成功登錄后,按照他們的角色跳轉到不同的主界面。 首先是登錄的界面

登錄的話,需要連接數據庫,因為數據庫我也不是特別的熟悉,所以有更好的方法可以艾特我。連接數據庫的方法有很多,詳細的方法可見網址: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了。這次分享到這里就結束了,有疑問可以留言評論哦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM