2010-11-18 54 views
7

Tôi có đoạn mã sau:không thể tìm thấy cài đặt 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(); 

và tôi nhận được lỗi sau:

Không thể tìm ISAM cài đặt.

tại connection.Open(). Bất kỳ ý tưởng?

+0

thể trùng lặp của [System.Data.OleDb.OleDbException: Không thể tìm ISAM cài đặt] (http://stackoverflow.com/questions/11562267/system-data-oledb-oledbexception-could- not-find-installable-isam) – bummi

Trả lời

5

Không có phiên bản 64 bit của các trình điều khiển Jet OLEDB, vì vậy nếu bạn đang chạy trên một hệ điều hành 64 bit, bạn có thể cần phải nhắm mục tiêu x86 trong ứng dụng NET của bạn và không Any CPU:

alt text

+8

Không sửa bất cứ điều gì cho tôi ... –

+3

Tôi đã khắc phục sự cố này bằng cách đặt dấu ngoặc kép quanh nguồn dữ liệu. Xem câu trả lời ở đây: http://stackoverflow.com/questions/512143/error-could-not-find-installable-isam/512187#512187 – Charlino

+4

Tại sao điều này được đánh dấu là câu trả lời được chấp nhận? – Josh

1

Tôi đã gặp sự cố này khi cố gắng mở tệp xls với nhà cung cấp gần đây hơn. Tôi cố định vấn đề này bằng cách thay đổi các thuộc tính mở rộng của tôi từ

Extended Properties="Excel 11.0;" 

để

Extended Properties="Excel 8.0;" 

Tôi đoán Excel 11 hy vọng một tập tin kiểu xlsx.

14

Tôi đã gặp lỗi tương tự, nhưng không có đề xuất nào ở trên hiệu quả. Trong trường hợp của tôi, tất cả những gì tôi phải làm là thay đổi chuỗi kết nối của tôi thành:

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

Lưu ý trích dẫn đơn xung quanh thuộc tính mở rộng ('Excel 12.0; IMEX = 1;'). Một khi tôi thêm vào những dấu nháy đơn thì lỗi đó biến mất!

0

sử dụng Extended properties="\excel 8.0;

Các vấn đề liên quan