C# Access数据库的连接池

C# Access数据库的连接池,c#,ms-access,c#-4.0,connection-pooling,C#,Ms Access,C# 4.0,Connection Pooling,我有一个经常从Access数据库读取数据的应用程序,有没有办法使用连接池 我的开放数据库方法:- private bool OpenDatabaseConnection(string databaseName) { try { string connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + databaseName + ";";

我有一个经常从Access数据库读取数据的应用程序,有没有办法使用连接池

我的开放数据库方法:-

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;
}

我同意@sll的评论,但为了回答您的问题,请将此字符串添加到您的连接字符串中

OLE DB服务=-1

这将强制与JET OleDB提供程序建立连接池。
但是,在使用和不使用此设置的情况下测试应用程序的性能。
差别应该可以忽略不计。 使用此设置,请记住始终返回到连接池的连接,并使用con关闭连接。使用语句关闭或封装连接到


查看上面的代码时,我会非常小心。

我认为共享access数据库不会给您带来任何好处。如果性能是一个问题,那么访问是一个糟糕的选择。

这些是可以使用的
连接字符串属性:

  • 所有服务(默认)
    oledb服务=-1
  • 除池外的所有服务
    oledb服务=-2
  • 除池和自动登记之外的所有服务
    oledb服务=-4
  • 除客户端游标之外的所有服务
    oledb服务=-5
  • 除客户端游标和池之外的所有服务
    oledb服务=-6
  • 无服务
    oledb服务=0


来源:

我建议不要为JET数据库设置连接池,除非您使用的是远程数据库文件,否则创建新连接不会带来很大的开销-在简化版中,请在引擎盖下打开一个文件。