Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego moja aplikacja C# nadal pobiera dane z MySql bez użycia połączenia.Open()

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowywanie tekstu MySQL?

  2. Jak wstawić wiele wartości pól wyboru do tabeli?

  3. Optymalizacja zapytań:max() w podzapytaniu

  4. MySQL nie traktuje ı jako i?

  5. Obsługa błędów MySQL podczas korzystania z Ajax