OleDbConnection、Excel和连接池的问题

3

所以,我有与C#/ASP.NET Oledb - MS Excel read "Unspecified error"中描述的相同的症状,但我的答案似乎没有解决它。即使总是关闭OleDBConnection并处理它也显示相同的症状。

var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=Excel 12.0;", _excelFile);
using (var conn = new OleDbConnection(connectionString))
{
    try
    {
        DoSomething();
    }
    finally
    {
        conn.Close();
    }
}

现在我找到了有关连接池的以下信息:
.NET Framework数据提供程序自动使用OLE DB会话池来池化连接。连接字符串参数可用于启用或禁用包括池化在内的OLE DB服务。例如,以下连接字符串禁用OLE DB会话池和自动事务登记。
Provider=SQLOLEDB;OLE DB Services=-4;Data Source=localhost;Integrated Security=SSPI;
我们建议您在使用完连接后始终关闭或处理连接,以将连接返回到池中。未明确关闭的连接可能无法返回到池中。例如,已超出范围但未明确关闭的连接仅在达到最大池大小并且连接仍然有效时才会返回到连接池中。
(来源:http://msdn.microsoft.com/en-us/library/ms254502.aspx
连接字符串属性OLE DB SERVICES是什么,值为-4是什么?

如果您计划奖励悬赏,您应该明确地按照这里描述的方式进行。 - Oleg
@Residuum,在连接字符串中使用OLE DB Services=-4是否起作用?我面临着同样的问题... - Thirisangu Ramanathan
@Thirisangu:是的,OLE DB Services=-4 是有效的。 - Residuum
2个回答

4
如果我理解正确,您想了解连接字符串属性OLE DB Services=-4的含义。
您可以在这里找到相应的文档:这里这里这里。希望这些信息能够满足您的需求。如果您想尝试使用DBPROPVAL_OS_AGR_AFTERSESSION属性,则其值为8(请参见oledb.h)。

0

现在请访问https://learn.microsoft.com/en-us/archive/blogs/selvar/ole-db-resource-pooling。 - unbob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接