Der Provider "Microsoft.ACE.OLEDB.12.0" ist beim Datenexport an MS ACCESS nicht auf dem lokalen Rechner registriert
Ich bin Anfänger in der Verwendung von Microsft.Ass.OLEDB 12.0. Ich erstellen eine Winforms-Anwendung in VS 2010.
Und erstellen Sie eine Funktion für den export der Daten-grid-Daten zu MS Access-Datei. Ich mithilfe von Microsoft OLE DB -
für den export der Daten-grid-Daten zu MS Access-Datei.Aber ich bekomme diese Fehlermeldung, wenn ich versuche zu exportieren
den
Daten zu ms access.
Bitte siehe unten im Bild.
Ich auch verweisen die Microsoft.Office 12.0 Object Library in meiner Anwendung.
Batch-Build-Konfiguration
Bitte Helfen.
InformationsquelleAutor der Frage Ragesh S | 2013-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Verweis auf die
Access Interop
bits hat nichts zu tun mit Ihren Ausnahme-und Interop-Zugriff ist nicht erforderlich, die Klassen, die in derSystem.Data.OleDb
.Das problem entsteht, wenn Sie Ihre kompilierte Anwendung für
AnyCPU Platform
sind, laufen Sie auf einem 64bit-system und die installierte ADO.NET Anbieter (Microsoft ACE.OLEDB.12.0) ist die 32bit-version.Bei der Verwendung der
AnyCpu
Zielplattform der code ausgeführt werden als 64-bit-code auf 64-bit-Systeme und als 32-bit-code auf 32-bit-Systemen. Eine Anwendung ausgeführt 64bit keine 32bit-Treiber verwenden (und Umgekehrt). Nun fügen Sie in den mix die Tatsache, dass Microsoft.Ass.OLEDB.12.0 hat zwei verschiedene Versionen. Eine für 64bit und eine für 32bit-und Sie können nicht zusammen installiert werden, auf der gleichen Maschine.Die einfachste Lösung ist das ändern der Zielplattform der Anwendung über Visual Studio-Menü
Wenn die
x86
option nicht bereits vorhanden ist, wählen Sie "NEU", name esx86
Copy Settings from AnyCPU
und überprüfenCreate new project platforms
Wenn Sie denken, dass mit einem 32bit Anwendung auf einem 64bit-Betriebssystem ist ein Verlust der Leistung oder etwas, das vermieden werden, dann denken Sie zweimal, und Lesen diese Referenzwo die vor-und NACHTEILE von AnyCpu kritisch überprüft. Wenn Sie nicht über einen bestimmten Grund für die Verwendung
AnyCpu
es ist besser, zu bleiben mitx86
.Natürlich, eine weitere option ist, deinstallieren Sie die 32-bit version und installieren Sie die 64-bit-version von ACE von hier aus und dann führen Sie die Anwendung als AnyCpu auf 64bit Systemen. Aber das könnte ein Alptraum für Ihre deployment-Szenarien. Was ist, wenn Microsoft-Office-32bit-version installiert ist auf Ihrem x64-Zielcomputer? Office installiert, die bit-kompatible version von ACE und, wie gesagt, es ist nicht möglich 32bit und 64bit von ACE auf derselben Maschine installiert sind.
Jetzt sollten Sie auch Fragen Sie Ihren Kunden, um Office neu zu installieren, da 64bit zu halten Ihre 64bit-app glücklich.
UPDATE
Die situation hat sich ein wenig verändert mit den neusten Versionen von Visual Studio. Es gibt jetzt eine neue option ist die Standardeinstellung für neue Projekte. Es heißt AnyCPU Lieber 32bit Modus. Mehr details unter diesem link: Was AnyCPU Wirklich Bedeutet .NET 4.5 und Visual Studio 11 und anderen interessanten Beitrag (wenn auch in Bezug auf Sql Server Compact) ist dies eine Das Problem mit Jeder CPU–Lieber 32-bit–BadImageFormatException
InformationsquelleAutor der Antwort Steve
Ändern, die im App-pool "erweiterte Einstellungen", um zum ausführen von 32-bit-Programme... das hat es für mich.
InformationsquelleAutor der Antwort Freguz
Habe ich ähnliche Problem, wenn wir das Lesen-Excel-Datei.
Geschichte des Problems:
Wir haben vor kurzem migriert unsere Anwendung von 32-bit auf 64-bit da der Speicherbedarf. Für die, die migriert wir unsere windows 7 von 32-bit auf 64-bit. Aber noch sind wir installierten 32-bit-office auf unseren Maschinen.
da, wir hatten dieses Problem beim Import von Excel-Daten in die Anwendung.
Lösung,
Ich heruntergeladen 64-bit-version des http://www.microsoft.com/en-us/download/details.aspx?id=13255 und installiert, mit dem argument,
AccessDatabaseEngine_x64.exe /passive
Ohne code-änderung mein Problem gelöst bekommen.
Hinweis:
Auf 64-bit-Bs und 64-bit-office -, mein-Funktionalität funktioniert gut, ohne dies zu beheben. Dieses Update ist nur erforderlich, während unsere Anwendung ist für 64-bit-Version auf 64-bit OS die 32-bit office installiert ist.
InformationsquelleAutor der Antwort Rahul Techie
Base Weg:
Anwendung :
MVC C#
Für Win Server 64 bit:
Entfernen Sie alle office 32-bit installiert.
Download-link: https://www.microsoft.com/en-us/download/details.aspx?id=13255
wählen Sie download 64 bit und installieren Sie es auf server(Wenn Sie nicht setup-Programm. Bitte überprüfen Sie erneut 1 Punkt).
wiederholen Zugriff auf Ihre Anwendung erneut.geben Sie eine Bild-Beschreibung hier
InformationsquelleAutor der Antwort Joh
für mich die Installation von Microsoft Access Database Engine 2010 Redistributable problem behoben, durch das die 32 bit version.
InformationsquelleAutor der Antwort Erik Pienknagura Dolberg