5

我有一个经常从 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;
}
4

3 回答 3

6

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

OLE DB Services=-1

这将强制使用 JET OleDB 提供程序进行连接池。
但是,在使用和不使用此设置的情况下测试您的应用程序的性能。
差异应该可以忽略不计。并且,使用此设置,请记住始终将连接返回到连接池,并使用 con.Close 关闭它或将您的连接封装在一个using语句中。

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

于 2012-04-04T15:09:24.790 回答
3

这些是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

于 2013-01-10T18:42:32.490 回答
1

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

于 2012-04-04T15:34:14.810 回答