2011-05-30 76 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)。