Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum ruft meine C#-Anwendung immer noch Daten von MySql ab, ohne connection.Open() zu verwenden?

Seit der Absicht, adapter.Fill(table); aufzurufen Um Daten aus der Datenbank abzurufen, würde ich sehr erwarten, dass das Fill -Methode öffnet die Verbindung, falls dies noch nicht geschehen ist.

Sie müssten nur explizit Open aufrufen wenn Sie beabsichtigen, auf der connection zu arbeiten direkt statt über Hilfsklassen wie MySqlDataAdapter zum Beispiel. Du kannst es natürlich jederzeit öffnen.

Ich würde jedoch vorschlagen, dass Sie die Verbindung in einen using setzen Anweisung, um sicherzustellen, dass es geschlossen und entsorgt wird, wenn Sie damit fertig sind:

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