Я использую backend SQL для доступа к базе данных для получения регистрационных данных, то есть имени пользователя и пароля, но без ввода того, что он войдет в систему
Вот мой код, в чем проблема.
private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@"Data Source=.;Database=master;Integrated Security=True"); SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Register WHERE usernmae='" + textBox1.Text + "' AND password='" + textBox2.Text + "'", con); /* in above line the program is selecting the whole data from table and the matching it with the user name and password provided by user. */ con.Open(); DataTable dt = new DataTable(); //this is creating a virtual table //sda.Fill(dt); con.Close(); if (dt.Rows.Count >= 0) { /* I have made a new page called home page. If the user is successfully authenticated then the form will be moved to the next form */ this.Hide(); Dashboard sn = new Dashboard(); sn.Show(); //new home().Show(); //MessageBox.Show("done"); } else MessageBox.Show("Not succesful Login");
Что я уже пробовал:
я хочу войти в систему с действительным именем пользователя и паролем, если он правильный, то он должен войти, если нет, то он должен показать ошибку, а не войти в систему.
Garth J Lancaster
Я думаю, что это" Integrated Security=True " в вашей строке подключения - он использует аутентификацию Windows/учетные данные вместо "учетных данных профиля базы данных/входа в систему"
Кстати, ваш SQL - отстой - никогда не стоит использовать конкатенацию для построения SQL-оператора, вы оставляете себя открытым для атак SQL-инъекций-вместо этого используйте параметризованный SQL-оператор