Есть ли у драйверов ACE OLEDB какие-либо известные проблемы с файлами большего размера?Я использую приведенный ниже код для извлечения рабочих листов из файла xls 400 МБ
public string[] GetWorkSheets()
{
var connectionString = "Provider=Microsoft.ACE.OleDb.12.0; data source=c:\filepath\filename.xls; Extended Properties=\"Excel 8.0;IMEX=1;HDR=YES;\"";
DataTable dataTable;
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();//Exception thrown here for large files
dataTable = connection.GetSchema("Tables");
}
int lenght = dataTable.Rows.Count;
string[] worksheets = new string[lenght];
for (int i = 0; i < lenght; i++)
{
worksheets[i] = dataTable.Rows[i]["TABLE_NAME"].ToString();
}
return worksheets;
}
Я получаю исключение OleDbException с сообщением «Превышен системный ресурс».Я не вызываю эту функцию в циклах и не открываю какие-либо другие соединения до того, как доберусь сюда.Этот код отлично работает для небольших файлов.
Моя система имеет 4 ГБ ОЗУ. Работает в Windows 7 64-битной.Драйвер Ace также 64-битный.
Есть идеи, что можно сделать, чтобы решить эту проблему?