Tutti gli esempi sopra mostrano la stessa debolezza. Non utilizzi la using che garantirà la corretta chiusura e smaltimento della connessione e degli altri oggetti usa e getta. Se una o più delle tue istruzioni generano un'eccezione, il codice che chiude la connessione non viene eseguito e potresti finire con l'errore di troppe connessioni
Ad esempio
string commandLine = "SELECT * FROM Table WHERE active=1";
commandLine = commandLine.Remove(commandLine.Length - 3);
using(MySqlConnection connect = new MySqlConnection(connectionStringMySql))
using(MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
connect.Open();
using(MySqlDataReader msdr = cmd.ExecuteReader())
{
while (msdr.Read())
{
//Read data
}
}
} // Here the connection will be closed and disposed. (and the command also)