Access数据库的连接池

问题描述 投票:5回答:3

我有一个经常从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;
}
c# ms-access c#-4.0 connection-pooling
3个回答
5
投票

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

OLE DB Services=-1

这将强制与JET OleDB提供程序建立连接池。但是,无论是否设置此设置,都应测试应用的性能。差异应该可以忽略不计。并且,使用此设置,rembember to ALWAYS会将连接返回到连接池,并使用con.Close关闭它或将连接封装在using语句中。

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


2
投票

这些是可以使用的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;

来源:https://docs.microsoft.com/en-us/archive/blogs/selvar/ole-db-resource-pooling


1
投票

我认为您不会从访问数据库的池中获得任何好处。如果性能是一个问题,那么访问将是一个糟糕的选择。

© www.soinside.com 2019 - 2024. All rights reserved.