Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi mon application C# récupère-t-elle toujours les données de MySql sans utiliser connection.Open()

Depuis l'intention d'appeler adapter.Fill(table); est de récupérer des données de la base de données, je m'attendrais fortement à ce que le Fill La méthode ouvre la connexion si ce n'est déjà fait.

Vous n'auriez qu'à appeler explicitement Open si vous avez l'intention d'opérer sur la connection directement au lieu de passer par des classes d'assistance comme MySqlDataAdapter par exemple. Vous pouvez bien sûr l'ouvrir quand bon vous semble.

Je suggérerais cependant que vous mettiez la connexion dans un using déclaration pour vous assurer qu'elle est fermée et éliminée lorsque vous en avez terminé :

using (var connection = new MySqlConnection(conString))
{
    DataTable table = new DataTable();
    MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM users", connection);
    adapter.Fill(table);
    dataGridView1.DataSource = table; 
}
// Now you are sure the connection is closed and being properly garbage collected