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