Не удалось найти устанавливаемый ISAM

у меня есть следующий код :

string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:dbsuc.xls; Extended Properties=""Excel 12.0;HDR=YES;""";

// Create Connection to Excel Workbook
using (OleDbConnection connection =
             new OleDbConnection(excelConnectionString))
{
    OleDbCommand command = new OleDbCommand
            ("Select * FROM [Sheet1$]", connection);

    connection.Open();

и я получаю следующую ошибку :

не удалось найти устанавливаемый ISAM.

at connection.Open() . Есть идеи ?

5 ответов


нет 64-битной версии драйверов Jet OLEDB, поэтому, если вы используете это на 64-битной ОС, вам может потребоваться target x86 в вашем приложении .NET, а не Any CPU:

alt text


У меня была та же ошибка, но ни одно из предложений выше не сработало. В моем случае все, что мне нужно было сделать, это изменить строку подключения на это:

string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties='Excel 12.0;IMEX=1;'";

обратите внимание на одинарную кавычку вокруг атрибута Extended Properties ('Excel 12.0; IMEX=1;'). Как только я добавил Эти одинарные кавычки, ошибка исчезла!


Я получал эту проблему, пытаясь открыть файл xls с более поздним поставщиком. Я исправил эту проблему, изменив мои расширенные свойства с

Extended Properties="Excel 11.0;"

to

Extended Properties="Excel 8.0;"

Я думаю, Excel 11 ожидает файл стиля xlsx.


использовать Extended properties="\excel 8.0;


в 64-разрядных средах Windows и 64-разрядных средах Office (2010, 2013) существует множество отчетов об этой ошибке. Исправление или обходной путь немного странный, но, похоже, работает для большинства людей.

в "Распространяемый Компонент Microsoft Access Database Engine 2010" пакет установки кажется естественным для использования, но несколько отчетов говорят, что он не работает.

вместо этого, используя "2007 Драйвер Системы Office: Компоненты Подключения К Данным" кажется чтобы решить эту проблему для большинства людей.