2012-04-04 17 views
5

Mam aplikację, która często odczytuje dane z bazy danych Access, czy istnieje sposób na wykorzystanie puli połączeń? MetodaPołączenie Pooling z bazą danych Access

My Otwarte databse: -

private bool OpenDatabaseConnection(string databaseName) 
{ 
    try 
    { 
     string connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; " + 
      "Data Source = " + databaseName + ";"; 
     settingsDbConn = new OleDbConnection(connectionString); 
     settingsDbConn.Open(); 
    } 
    catch (Exception) 
    { 
     return false; 
    } 

    return true; 
} 
+0

Proponuję nie przejmować się zestawianiem połączeń do bazy danych JET chyba używasz zdalnie zlokalizowanego pliku db, w przeciwnym razie nie ma znaczącego narzutu tworzącego nowe połączenie - w uproszczonej wersji otwórz plik pod maską. – sll

Odpowiedz

5

Zgadzam się z komentarzem @sll jednak, aby odpowiedzieć na to pytanie, a następnie dodać ten ciąg do ciągu połączenia

OLE DB Services=-1

ten wymusi połączenie puli z dostawcą JET OleDB.
Testuj jednak wydajność aplikacji z tym ustawieniem i bez niego.
Różnica powinna być znikoma. I, przy tym ustawieniu, pamiętaj, aby ZAWSZE zwrócić połączenie do puli połączeń zamykając je za pomocą con.Close lub enkapsulując połączenie w oświadczeniu using.

Patrząc na twój kod powyżej, będę bardzo ostrożny.

1

Nie sądzę, że skorzystasz z puli dla bazy danych dostępu. Jeśli wydajność jest problemem, dostęp jest złym wyborem.

1

connectionstring atrybuty, które mogą być stosowane:

  • Wszystkie usługi (domyślnie)
    OLE DB Services = -1;
  • Wszystkie usługi oprócz łączenie
    OLE DB Services = -2;
  • Wszystkie usługi oprócz łączenie i auto-werbunku
    OLE DB Services = -4;
  • Wszystkie usługi z wyjątkiem kursora klienta
    OLE DB Services = -5;
  • wszystkie usługi z wyjątkiem kursora klienta oraz łączenie
    OLE DB Services = -6;
  • żadne usługi
    OLE DB Services = 0;
Powiązane problemy