Как я пишу 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(); }
Что я уже пробовал:
Как я пишу код, когда пользователь есть пользователь
Richard Deeming
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
Richard Deeming
Кроме того, никогда не храните пароли в виде обычного текста. Храните только соленый хэш пароля, используя уникальную соль для каждой записи.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]