2012-04-04 120 views
5

我有一個應用程序頻繁地從Access數據庫讀取數據,有什麼方法可以使用連接池?連接池與Access數據庫

我打開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

我建議不連接池的JET數據庫,除非打擾你正在使用位於遠程的db文件,否則沒有明顯的開銷創建一個新的連接 - 在簡化版本下打開一個文件。 – sll 2012-04-04 14:02:03

回答

5

我同意@sll的評論,但是,回答你的問題,那麼這個字符串添加到您的連接字符串

OLE DB Services=-1

這將強制與JET OleDB提供者建立連接池。
然而,測試您的應用程序的性能與沒有這個設置。
差異應該可以忽略不計。 然後,使用此設置,rembember始終將連接返回到連接池,並使用con.Close關閉連接或將連接封裝在using語句中。

看着你的代碼上面我會非常小心。

1

我不認爲你會從訪問數據庫池中獲得任何好處。如果性能問題,訪問是一個糟糕的選擇。

1

這些都是可以使用的connectionstring屬性:

  • 所有服務(默認值)
    OLE DB Services = -1;
  • 所有的服務,除了彙集
    OLE DB Services = -2;
  • 所有的服務,除非池和自動徵用
    OLE DB Services = -4;
  • 除了客戶端遊標的所有服務
    OLE DB Services = -5;
  • 除了客戶端遊標的所有服務,並彙集
    OLE DB Services = -6;
  • 沒有服務
    OLE DB Services = 0;