У меня есть кусок кода для выполнения команды mysql, но иногда он выдает исключение
Уже существует открытый DataReader, связанный с этим подключением, который должен быть закрыт первым
Это непредсказуемо, когда будет выброшено исключение, иногда моя программа работает нормально более 15 минут, но затем она падает. Я искал ответ в Интернете, но ничего не нашел.
Это мой код:
public static List<string> DoCommand(string commandLine, string myConString) {
MySqlCommand command = new MySqlCommand(commandLine);
List<string> tables = new List<string>();
try {
using (MySqlConnection mySqlConnection = new MySqlConnection(myConString)) {
mySqlConnection.Open();
command.Connection = mySqlConnection;
command.BeginExecuteReader();
using (MySqlDataReader SqlDR = command.ExecuteReader()) {
while (SqlDR.Read()) { //Async reading, wait untill reading is done
tables.Add(SqlDR.GetString(0));
}
//SqlDR.Close();
//SqlDR.Dispose();
}
//mySqlConnection.Close();
//mySqlConnection.Dispose();
}
} catch (Exception exp) { } finally {
command.Connection = null;
}
//System.Threading.Thread.Sleep(50); //Give connection time to flush
return tables;
}
есть некоторые решения, которые не работают в комментариях.
Это единственный код, который подключается к mysql, поэтому я уверен, что все подключения закрыты