所以,我有C#/ASP.NET Oledb - MS Excel read "Unspecified error"中描述的相同症状,但我的my answer似乎没有解决它。即使总是关闭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();
}
}
现在我找到了关于连接池的以下信息:
OLE DB的.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
的值是什么?
答案 0 :(得分:4)
如果我理解你的问题是正确的,你想知道连接字符串属性OLE DB Services=-4
是什么意思。
您可以找到相应的文档here,here和here。我希望这些信息是您所需要的。如果你想要使用DBPROPVAL_OS_AGR_AFTERSESSION
属性,它的值为8(参见oledb.h)。
答案 1 :(得分:0)
我不是真的进入OleDbConnections,但你看过这篇文章吗?
http://blogs.msdn.com/b/selvar/archive/2007/11/10/ole-db-resource-pooling.aspx
本文中的表4提到了OLE DB SERVICES属性以及属于-number值的值。