2012-04-04 13 views
5

Possiedo un'applicazione che legge i dati da un database di Access frequentemente, esiste un modo per utilizzare il pool di connessioni? MetodoPool di connessioni con database di Access

My Open Banca dati: -

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

vorrei suggerire non perdere tempo con il pool di connessioni per la base di dati JET a meno stai usando il file db in remoto, altrimenti non c'è un sovraccarico significativo che crei una nuova connessione - nella versione semplificata apri un file sotto il cofano. – sll

risposta

5

Sono d'accordo con il commento di @sll ma, per rispondere alla tua domanda, quindi aggiungere questa stringa alla stringa di connessione

OLE DB Services=-1

Questo imporrà il pool di connessioni con il provider JET OleDB.
Tuttavia, prova le prestazioni della tua app con e senza questa impostazione.
La differenza dovrebbe essere trascurabile. E, con questa impostazione, ricordare SEMPRE di restituire la connessione al pool di connessioni chiudendolo con con.Close o incapsulando la connessione in un'istruzione using.

Guardando il tuo codice sopra sarò molto attento.

1

Non credo che otterrete alcun beneficio dal pool di un database di accesso. Se le prestazioni sono un problema, l'accesso è una scelta sbagliata.

1

Queste sono le connectionstring attributi che possono essere utilizzati:

  • Tutti i servizi (il default)
    OLE DB Services = -1;
  • tutti i servizi eccetto il pool
    OLE DB Services = -2;
  • Tutti i servizi ad eccezione di mettere in comune e auto-arruolamento
    OLE DB Services = -4;
  • Tutti i servizi ad eccezione di cursore client
    OLE DB Services = -5;
  • tutti i servizi tranne cursore client e mettere in comune
    OLE DB Services = -6;
  • no Servizi
    OLE DB Services = 0;