C #. Мое приложение Windows Forms вылетает, когда я пытаюсь проверить, существует ли пользователь в моей базе данных SQL

#c# #sql #winforms #crash

#c# #sql #winforms #сбой

Вопрос:

У меня есть простая программа, в которой вы вводите логин и пароль в текстовые поля, которые должны проверять, существуют ли такие пользователь и пароль в моей локальной базе данных SQL. Все работает нормально, кроме DataReader. Когда я набираю логин и пароль, а затем нажимаю кнопку, мое приложение просто закрывается, вместо того, чтобы показывать ошибку (в случае неправильного пароля), открывать новую форму (в случае успеха) или просто показывать мне, что не так с моей программой. Когда я удалил rd.HasRows из поля условия в операторе «if», моя программа работала нормально, поэтому я думаю, что проблема здесь.

 private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=DESKTOP-MR9T8DF\YEET;Initial Catalog=Students;Integrated Security=True");

            Form2 studentForm = new Form2();
                con.Open();
                SqlCommand cmd = new SqlCommand("select * from Students where Login = '"   LoginTextBox.Text   "' and Password = '"   PasswordTextBox.Text   "'", con);
                SqlDataReader rd = cmd.ExecuteReader();

                if (rd.HasRows)
                {
                    studentForm.Show();
                }
                else
                {
                    ErrorLabel.Visible = true;
                }

            Hide();
        }
 

Ответ №1:

Вы всегда скрываете свою форму после оценки входа в систему. Удалите эту строку:

 Hide();