问题与OleDbConnection,Excel和连接池

所以,我有相同的症状描述在C#/ ASP.NET Oledb – MS Excel中读取“未指定的错误” ,但我的答案似乎并没有解决它。 即使总是closuresOleDBConnection并处理它也显示出相同的症状。

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

现在我已经在连接池中find了以下信息:

OLE DB的.NET Framework数据提供程序使用OLE DB会话池自动池连接。 可以使用连接string参数来启用或禁用包括池在内的OLE DB服务。 例如,以下连接string将禁用OLE DB会话池和自动事务登记。

Provider = SQLOLEDB; OLE DB Services = -4; Data Source = localhost;集成安全性= SSPI;

我们build议您在完成使用后始终closures或处置连接,以便将连接返回到池中。 未明确closures的连接可能不会返回到池中。 例如,超出范围但未显式closures的连接只有在达到最大池大小并且连接仍然有效时才会返回到连接池。

(来源: http : //msdn.microsoft.com/en-us/library/ms254502.aspx )

什么是连接string属性OLE DB SERVICES和什么是-4的值?

如果我理解你的问题是正确的,你想知道连接string属性OLE DB Services=-4是什么意思。

你可以在 这里和这里find相应的文档。 我希望这些信息是你所需要的。 如果你想玩DBPROPVAL_OS_AGR_AFTERSESSION属性,它的值是8(见oledb.h)。

我不是真的进入OleDbConnections,但你看到这个职位?

http://blogs.msdn.com/b/selvar/archive/2007/11/10/ole-db-resource-pooling.aspx

表4在这篇文章中提到了OLE DB SERVICES属性以及属于-number值的值。