MahmoudOmar Ответов: 1

Как я пишу if select else select in C# windows form


я хочу сделать что-то, когда пользователь является администратором, и сделать что-то еще, когда пользователь является пользователем.

это мой код, когда пользователь является администратором:-


private void btn_OkLogin_Click(object sender, EventArgs e)
        {
            validation();
            if(valideUserName == true && validePassword == true)
            {
                s = "select Role_id from Users where User_name = '" + txt_UserName.Text + "' and Password = '" + txt_Password.Text + "' and Role_id = 1 ";
                sdAdapter = new SqlDataAdapter(s, con);
                dt = new DataTable();
                sdAdapter.Fill(dt);
                if (dt.Rows.Count == 1)
                {
                    string s2 = " insert into LoginAndOutDate(user_name, Login_Date) ";
                    s2 = s2 + " values(@user_name, CURRENT_TIMESTAMP) ";

                    if (con.State == ConnectionState.Closed)
                        con.Open();

                    using (sCommand = new SqlCommand(s2, con))
                    {
                        sCommand.Parameters.AddWithValue("@user_name", txt_UserName.Text);
                        sCommand.ExecuteNonQuery();
                    }

                    if (con.State == ConnectionState.Open)
                        con.Close();

                    this.Hide();
                    FRM_Main frm = new FRM_Main(txt_UserName.Text, true);
                    frm.RefToFormLogin = this;
                    frm.Show();
                    txt_Password.Clear();           
                }


Что я уже пробовал:

Как я пишу код, когда пользователь есть пользователь

1 Ответов

Рейтинг:
0

OriginalGriff

Для начала, не делай этого так!
Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы. Вы явно знаете, как их использовать, потому что вы делаете это для запроса INSERT.

Но...почему вы извлекаете Role_id, когда ваш пользователь входит в систему, если вы уже знаете, что такое Role_id? Предположительно, Role_id определяет, является ли пользователь пользователем или администратором - поэтому только разрешение ему войти в систему, когда он находится в одном или другом состоянии, специально мешает вам что-либо делать, когда он является другим "типом" пользователя.
Удалите часть запроса SELECT "and Role_id = 1" и проверьте возвращаемое значение - это подскажет вам, что пользователю разрешено делать, и вы можете проверить это непосредственно.