В настоящее время я работаю над формой входа в систему управления школой. Дело в том, что при попытке войти я получаю сообщение об ошибке:
System.InvalidOperationException: соединение не было закрыто. Текущее состояние соединения открыто
Это говорит о том, что ошибка в 30-й строке кода, но я не могу найти способ ее решить.
Вот код метода, в котором происходит ошибка:
public void LoginTeacher()
{
try
{
command = new SqlCommand("TeacherLogin", connection);
command.CommandType = CommandType.StoredProcedure;
connection.Open(); // This is the 30th line.
command.Parameters.AddWithValue("@username", Txt_User.Text);
command.Parameters.AddWithValue("@password", Txt_Pass.Text);
SqlDataReader dataReader = command.ExecuteReader();
if (dataReader.Read())
{
TeacherDash teacherDash = new TeacherDash();
this.Hide();
teacherDash.lblusertype.Text = dataReader[1] + " " + dataReader[2].ToString();
teacherDash.ShowDialog();
this.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
connection.Close();
}
}
Сразу после того, как эта ошибка показана, есть еще один, который говорит:
Система .InvalidOperationException: Неверная попытка вызвать CheckDataIsReady, когда читатель закрыт
и указывает на строку 71, которая выглядит следующим образом:
public void Login()
{
try
{
command = new SqlCommand("SP_USER_LOGIN", connection);
command.CommandType = CommandType.StoredProcedure;
connection.Open();
command.Parameters.AddWithValue("@user", Txt_User.Text);
command.Parameters.AddWithValue("@pass", Txt_Pass.Text);
SqlDataReader dataReader = command.ExecuteReader();
if (dataReader.Read())
{
LoginTeacher();
if (dataReader[10].Equals("Admin"))
{
AdminDash adminDash = new AdminDash();
this.Hide();
adminDash.lblusertype.Text = dataReader[1] + " " + dataReader[2].ToString();
adminDash.ShowDialog();
this.Close();
}
После этого есть больше кода, но я не делаю считаю это актуальным, поскольку это то же самое, но с другим типом пользователей.
Заранее спасибо!