0
當我嘗試連接到Excel工作表並使用查詢結果填充OleDbDataAdapter時,我在代碼(c#,.Net 3.5,VS2008)中收到以下錯誤。首先,錯誤:填充數據適配器時出現奇怪的錯誤
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
這裏是代碼,這是誠實很簡單:
var excelFileName = @"c:\Metadata_Tool.xlsm";
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}; Extended Properties=Excel 12.0;HDR=YES;", excelFileName);
var adapter = new OleDbDataAdapter("Select * FROM [Video Tagging XML]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "VTX");
DataTable data = ds.Tables["VTX"];
foreach (DataRow myRow in data.Rows)
{
foreach (DataColumn myColumn in data.Columns)
{
Console.Write("\t{0}", myRow[myColumn]);
}
Console.WriteLine();
}
Console.ReadLine();
我上線adapter.Fill(ds,"VTX");
錯誤。我確實找到了一個微軟論壇帖子,聲稱可以在Tools/Options/Debug/General菜單中打開VS2008中的JIT優化,但這似乎沒有幫助。任何幫助將不勝感激,謝謝!
我給了這個嘗試,雖然你是正確的格式,不幸的是,並沒有解決問題。我收到了同樣的錯誤。 – 2010-03-26 13:45:14
@Tim C:你確定這個文件在嗎?是否應用了正確的權限?你有沒有嘗試在Excel中打開它?你是否在一個只有幾行的手工創建的全新空白Excel文件上嘗試了相同的代碼? – Aaronaught 2010-03-26 13:59:22
它似乎與Excel文件!該文件位於正確的位置並具有所有權限,但是當我更改爲另一個文件時,它工作正常。這件事有些腐敗。謝謝! – 2010-03-26 21:00:00