2010-11-18 33 views
7

Mam następujący kod:nie można znaleźć instalowalnego ISAM

string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\db\suc.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(); 

i pojawia się następujący błąd:

nie znaleźliśmy instalowalnego ISAM.

pod numerem connection.Open(). Jakieś pomysły ?

+0

możliwe duplikat [System.Data.OleDb.OleDbException: Nie można odnaleźć instalowalnego ISAM] (http://stackoverflow.com/questions/11562267/system-data-oledb-oledbexception-could- not-find-installable-isam) – bummi

Odpowiedz

5

Nie ma wersji 64-bitowych sterowników Jet OLEDB, więc jeśli działa to na 64-bitowym systemie operacyjnym może trzeba kierować x86 w aplikacji .NET i nie Any CPU:

alt text

+8

Nic nie naprawiłem ... –

+3

Rozwiązałem ten problem, umieszczając cytaty wokół źródła danych. Zobacz odpowiedź tutaj: http://stackoverflow.com/questions/512143/error-could-not-find-installable-isam/512187#512187 – Charlino

+4

Dlaczego jest to zaznaczone jako zaakceptowana odpowiedź? – Josh

1

Otrzymałem ten problem, próbując otworzyć plik xls z nowszym dostawcą. naprawiłem ten problem zmieniając swoje właściwości rozszerzonych z

Extended Properties="Excel 11.0;" 

do

Extended Properties="Excel 8.0;" 

Chyba Excel 11 oczekuje plik stylu xlsx.

14

Wystąpił ten sam błąd, ale żadna z powyższych sugestii nie zadziałała. W moim przypadku wszystko, co musiałem zrobić, to zmienić swój ciąg połączenia do tego:

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

Uwaga Single Cytat wokół atrybutu rozszerzonego Properties ('Excel 12,0; IMEX = 1;'). Po dodaniu tych pojedynczych cudzysłowów błąd zniknął!

0

użycie Extended properties="\excel 8.0;

Powiązane problemy