Ponieważ zamiar wywołania adapter.Fill(table);
jest pobieranie danych z bazy danych. Bardzo oczekiwałbym, że Fill
metoda otwiera połączenie, jeśli jeszcze nie jest.
Musisz tylko jawnie wywołać Open
jeśli zamierzasz operować na connection
bezpośrednio zamiast przez klasy pomocnicze, takie jak MySqlDataAdapter
na przykład. Możesz go oczywiście otworzyć, kiedy tylko masz na to ochotę.
Sugerowałbym jednak umieszczenie połączenia w using
oświadczenie, aby upewnić się, że jest zamknięty i usunięty, gdy skończysz:
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