与Access数据库的连接池

时间:2012-04-04 13:57:37

标签: c# ms-access c#-4.0 connection-pooling

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

我的Opendatabase方法: -

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

3 个答案:

答案 0 :(得分:5)

我同意@sll的评论但是,为了回答你的问题,然后将此字符串添加到你的连接字符串

OLE DB Services=-1

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

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

答案 1 :(得分:1)

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

答案 2 :(得分: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;