2011-05-30 54 views
2

因此,我的症状与C#/ASP.NET Oledb - MS Excel read "Unspecified error"中描述的相同,但我的my answer似乎无法解决问题。即使总是关闭OleDBConnection并处理它也会显示相同的症状。OleDbConnection,Excel和连接池问题

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服务。例如,以下连接字符串将禁用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

如果你打算奖赏赏金,你应该像这里描述的那样明确地做到这一点(http://meta.stackexchange.com/questions/16065/how-does-the-bounty-system-work/16067#例如,16067)。 – Oleg 2011-07-29 06:48:09

+0

@ Residuum,它是否在连接字符串中使用OLE DB Services = -4?我面临同样的问题... – 2014-08-07 06:14:21

+0

@Thirisangu:是的,OLE DB服务= -4正在工作。 – Residuum 2014-08-07 09:46:07

回答

4

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

你可以找到相应的文档here,herehere。我希望信息是你需要的。如果你想玩DBPROPVAL_OS_AGR_AFTERSESSION属性它的值为8(见oledb.h)。