2009-06-30 16 views
3

ich nicht ein Excel-Tabellenblatt mit .NET auf einem x64-Server mit der folgenden VerbindungszeichenfolgeÖffnen eine Excel-Tabelle in .NET auf einem x64-System

„Provider = Microsoft.Jet.OLEDB.4.0 öffnen ; Datenquelle = "+ filePath +"; Erweiterte Eigenschaften = Excel 8.0; "

Ich bekomme Der Provider "Microsoft.Jet.OLEDB.4.0" ist nicht auf dem lokalen Rechner registriert.

Ich installierte die 2007 Office System-Treiber: Datenkonnektivitätskomponenten und versuchte mit Microsoft.ACE.OLEDB.12.0 und diese Verbindungszeichenfolge

"Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" + filePath + "; Erweiterte Eigenschaften = Excel 8.0;"

und bekam "Der 'Microsoft.ACE.OLEDB.12.0' Provider ist nicht auf dem lokalen Rechner registriert."

Ich suchte Google mit der einzigen Antwort, es ist ein 64-Bit-Problem, jeder hat eine Idee, wie das zu beheben?

Antwort

2

Die Excel 2003/2007 OleDB-Treiber sind nur 32 Bit. Mein Verständnis ist, dass Sie sie nur in einer 32-Bit-Anwendung verwenden können.

öffnen xls und xlsx Arbeitsmappen und es ist getestet und unterstützt in 64-Bit-sowie 32-Bit-.NET 2.0 +.

Sie können die Auswertung here herunterladen und Live-ASP.NET-Beispiele (C# & VB) here.

Disclaimer: Ich besitze SpreadsheetGear LLC

3

Ihre Anwendung eingestellt werden muss als 32-Bit-Anwendung auszuführen. Dies kann durch Ändern der Zielplattform für Ihr ausführbares Projekt von AnyCPU auf x86 im Visual Studio Configuration Manager erreicht werden.

Wenn Sie testen möchten, wie dies mit Ihrer Anwendung funktioniert, bevor Sie Ihre Lösungskonfigurationen ändern, können Sie das Dienstprogramm corflags.exe verwenden. Dies funktioniert nur, wenn Ihre Anwendung nicht stark benannt oder Authenticode signiert ist. Andernfalls müssen Sie die Anwendung beenden. Geben Sie in einer Visual Studio-Eingabeaufforderung Folgendes ein:

corflags.exe <path and exe file name> /32BIT+ 
Verwandte Themen