簡體   English   中英

使用MySql的2個不同表登錄,它們具有自己不同的Windows窗體

[英]Login with 2 different tables from MySql and they have their own different windows form

我想以1個登錄表單登錄數據庫中2個不同的表,每個表都有自己的Windows表單。

我有2個來自MySql的表

  • SECRETARY_REGISTRATION
  • 注冊

他們有自己的窗戶形式

  • SECRETARY_REGISTRATION具有主頁秘書
  • REGISTRATION具有HomePagePhysician

我兩者都只有1個登錄表單,並且它具有“用戶名”文本框和“密碼”文本框以及僅用於登錄的按鈕。

請幫我。 謝謝。 :)

SqlConnection con = new SqlConnection(@"Data Source = ArlineCuachon\SQLEXPRESS; Initial Catalog = CDSS;
                                            Integrated Security = true;");
        string query = "SELECT * FROM REGISTRATION WHERE RUsername = '" + UsernameLogin.Text.Trim() + "' AND RPassword = '" + PasswordLogin.Text.Trim() + "'";
            SqlDataAdapter sda = new SqlDataAdapter(query, con);
            DataTable dtbl = new DataTable();
            sda.Fill(dtbl);
            if (dtbl.Rows.Count == 1)
            {
                this.Hide();
                HomePagePhysician home = new HomePagePhysician();
                home.ShowDialog();

            }

            else

            {

                MessageBox.Show("You have entered wrong username or password!");

            }
        string query = "SELECT * FROM SECRETARY_REGISTRATION WHERE SUsername = '" + UsernameLogin.Text.Trim() + "' AND SPassword = '" + PasswordLogin.Text.Trim() + "'";
        SqlDataAdapter sda1 = new SqlDataAdapter(query, con);
        DataTable dtbl1 = new DataTable();
        sda1.Fill(dtbl1);
        if (dtbl1.Rows.Count == 1)
        {
            this.Hide();
            HomePageSecretary home = new HomePageSecretary();
            home.ShowDialog();
        }

        else

        {

            MessageBox.Show("You have entered wrong username or password!");

        }

您無需編寫兩次代碼,可以通過一次調用(如以下查詢)在兩個表中檢入。

SELECT * FROM
(
    SELECT Col1,Col2,Col3...ColN, 'Registartion' as TypeOfLogin FROM REGISTRATION
    UNION
    SELECT Col1,Col2,Col3...ColN, 'Secretary Registration' as TypeOfLogin FROM SECRETARY_REGISTRATION 
) T
WHERE T.SUsername  = 'UserName' AND T.SPassword ='Somepassword'

為了區分用戶類型,你可以使用列TypeOfLogin ,如果值是Registartion負載HomePagePhysician形式的其他負載HomePageSecretary形式

代碼中還存在其他關鍵問題,例如正在構建動態查詢,理想情況下,您需要使用參數來避免任何SQL注入攻擊。

在此處閱讀有關SQL注入的更多信息

要了解有關如何使用命令參數的信息,可以閱讀以下內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM