Почему я не могу дважды вызвать OpenConnection() одним способом? Когда я вызываю это, появляется такая ошибка:Почему нельзя OpenConnection() вызываться дважды в одном методе?
Соединение уже открыто.
Я называю это дважды в SelectDisPatient()
и Count()
. Смотрите мой код на for (int index = 0; index < Count(); index++)
Этот метод SelectDisPatient
:
public void SelectDisPatient(FrmVIRGO frm)
{
string query = "SELECT id_pasien FROM tb_patient_information ";
if (this.OpenConnection() == true)
{ //Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dataReader.HasRows)
{
for (int index = 0; index < Count(); index++)
dataReader.Read();
frm.tbName.Text = dataReader[0].ToString();
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
}
}
Count()
Этот метод:
public int Count()
{
string query = "SELECT Count(*) FROM tb_patient_information";
int Count = -1;
//Open Connection
if (this.OpenConnection() == true)
{
//Create Mysql Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//ExecuteScalar will return one value
Count = int.Parse(cmd.ExecuteScalar()+"");
//close Connection
this.CloseConnection();
return Count;
}
else
{
return Count;
}
}
Но когда я удалить (this.OpenConnection() == true)
в методе Count()
он говорит, мне нужно, чтобы закрыть соединение.
почему вы хотите, чтобы открыть соединение дважды? –
Поместите 'dataReader.Close();' в свой цикл 'for' –
^или подключайте и повторно используйте соединения. –