我正在使用Excel Interop名稱空間來修改Excel工作簿連接中的連接字符串。爲什麼設置OLEDBConnection.Connection拋出異常(HRESULT:0x800A03EC)?
爲什麼當我試圖將連接屬性(MSDN OLEDBConnection.Connection)拋出的分配線的錯誤?從HRESULT
例外:0x800A03EC
application = new Application();
Workbook wb = application.Workbooks.Open(file.FullName);
Sheets wbs = wb.Worksheets;
IEnumerable<Workbook> workbooks = application.Workbooks.Cast<Workbook>();
foreach (var connection in wb.Connections.Cast<WorkbookConnection>()
.Where(c => c.Type == XlConnectionType.xlConnectionTypeOLEDB))
{
connection.OLEDBConnection.Connection = "Test Connection String";
}
application.Quit();
但是,調用替換方法如下所示正在工作。我發現這是解決方法,不確定爲什麼Replace在這種情況下工作。
application = new Application();
Workbook wb = application.Workbooks.Open(file.FullName);
Sheets wbs = wb.Worksheets;
IEnumerable<Workbook> workbooks = application.Workbooks.Cast<Workbook>();
foreach (var connection in wb.Connections.Cast<WorkbookConnection>()
.Where(c => c.Type == XlConnectionType.xlConnectionTypeOLEDB))
{
var conString = connection.OLEDBConnection.Connection.ToString();
connection.OLEDBConnection.Connection =
conString.Replace("Test Connection String", "New Test Connection String");
}
application.Quit();
這其實是我能得到的連接字符串改變的唯一途徑,因此要求背後是什麼,爲什麼一套可能引發錯誤的原因。
因爲''測試連接字符串「!= conString.Replace(」測試連接字符串「,」新測試連接字符串「)? – Slai
謝謝,讓我停下來,重新從頭開始訪問。很快會發布答案。儘管會使用OpenXML。 –