579 Stimmen

'Der 'Microsoft.ACE.OLEDB.12.0'-Anbieter ist auf dem lokalen Rechner nicht registriert'

Ich versuche, Daten aus einer Excel-Datei bei einem Klickereignis auf eine Schaltfläche zu erhalten. Mein Verbindungszeichenfolge ist:

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

Wenn ich auf die Schaltfläche klicke, erhalte ich den folgenden Fehler:

Der Anbieter 'Microsoft.ACE.OLEDB.12.0' ist auf dem lokalen Rechner nicht registriert.

Ich habe keine Ahnung, wie ich das beheben soll. Mein Betriebssystem ist Windows 7.

13 Stimmen

Nur ein kurzer Kommentar: Die Verwendung von OLEDB zum Lesen einer Excel-Datei ist veraltete Technologie, sehr langsam und wie Sie festgestellt haben, erfordert das manuelle Installation von zusätzlichen Paketen auf Ihrem Zielrechner. (Zugegeben, die Frage wurde 2011 gestellt.) Verwenden Sie stattdessen ClosedXml (verfügbar auf NuGet), das sofort einsatzbereit ist.

7 Stimmen

@ShaulBehr Wäre schön gewesen, aber ClosedXml funktioniert nur für .xlsx-Dateien, nicht für .xls.

7 Stimmen

Wenn Sie in Sql Server importieren, können Sie diese Abfrage von SSMS ausführen: execute master.dbo.xp_enum_oledb_providers Es wird Ihnen sagen, welche Anbieter es denkt, die Sie haben. Es hat mir gesagt, dass ich sowohl Microsoft.ACE.OLEDB.16.0 als auch Microsoft.ACE.OLEDB.12.0 habe, aber als ich versuchte, Daten zu importieren, bekam ich dasselbe 'nicht auf Ihrem lokalen Rechner registriert', wie der OP, für beide Excel 16 und Excel 2007-Dateiformate (oledb.16.0 und oledb.12.0 entsprechend). Es macht Sinn, an diesem Punkt Ihre Verluste zu akzeptieren und auf die Microsoft-Software zu verzichten.

3voto

Chagbert Punkte 682

Ich habe diesen Fehler erhalten, als ich Daten aus einer Excel-Datei in MS-SQL importiert habe. Der Anbieter war bereits installiert (64-Bit) und das hat mich überrascht, warum es nicht funktioniert hat. Also habe ich einfach die Import/Export-Anwendung hier gefunden, d.h. die .EXE. Und ich habe sie unter gefunden

C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTSWizard.exe

Dann habe ich die .exe direkt ausgeführt, um den Datenimport durchzuführen. Und es hat funktioniert!

0 Stimmen

Hm, ich hatte da ein paar Versionen, SSMS muss die falsche benutzen.

0 Stimmen

In meinem Fall befand es sich unter C:\Program Files\Microsoft SQL Server\150\DTS\Binn finden Sie einfach den Standort von DTS.

3voto

Taran Punkte 10819

Ich hatte dieses Problem, als ich versuchte, Daten aus einer Excel-Datei (xlsx) in eine SQL Server DB mit SSMS 2014 zu importieren.

Die 2007 Office System-Treiber: Datenverbindungskomponenten Installation hat bei mir funktioniert.

0 Stimmen

...und wenn das nicht funktioniert, versuchen Sie, eine andere "Excel-Version" aus der Dropdown-Liste des Bildschirms "Datenquelle wählen" auszuwählen. stackoverflow.com/a/56171883/283895

0 Stimmen

@Taran Verbindung ist nicht verfügbar

1 Stimmen

Dies sieht aus wie die Datei, aber ich kann nicht bestätigen download.cnet.com/…

3voto

Rahul Techie Punkte 353

Ich habe ein ähnliches Problem, wenn wir eine Excel-Datei lesen.

Verlauf des Problems:

Wir haben kürzlich unsere Anwendung von 32-Bit auf 64-Bit umgestellt, aufgrund des Speicherbedarfs. Dafür haben wir unsere Windows 7 von 32-Bit auf 64-Bit migriert. Aber wir haben immer noch 32-Bit Office auf unseren Maschinen installiert.

Aufgrund dessen hatten wir Probleme beim Importieren von Excel-Daten in die Anwendung.

Lösung:

Ich habe die 64-Bit-Version von http://www.microsoft.com/en-us/download/details.aspx?id=13255 heruntergeladen und mit dem Argument installiert:

AccessDatabaseEngine_x64.exe /passive

Ohne irgendwelche Code-Änderungen wurde mein Problem behoben.

Hinweis:

Auf einem 64-Bit-Betriebssystem und 64-Bit-Office funktionierte meine Funktionalität ohne diese Korrektur einwandfrei. Diese Korrektur ist nur erforderlich, wenn unsere Anwendung in einer 64-Bit-Umgebung auf einem 64-Bit-Betriebssystem mit 32-Bit-Office installiert läuft.

0 Stimmen

Aber Microsoft ist gegen diese Lösung. Einige meiner Kunden stellen Verzerrungen in anderen Office-Programmen fest, aufgrund dieses Fixes.

2voto

Biki Punkte 2398

Einfach das folgende Access-DB-Engine herunterladen & installieren (X86 oder X64: entsprechend Ihrer Maschinenkonfiguration) und die Magie erleben :)

https://www.microsoft.com/de-de/download/confirmation.aspx?id=13255

2voto

Ads Punkte 1944

Ich habe den Anweisungen anderer gefolgt; Ich habe diesen Patch installiert, dann diesen Patch sowie das Microsoft Access Database Engine 2010.

Mein Problem war, dass ich dieselbe Bibliothek (linq2sql) in 2 Websites auf meinem Rechner verwende; eine funktioniert und eine nicht.

Schließlich fand ich heraus, dass ich "32-Bit-Anwendungen aktivieren" musste in den erweiterten Einstellungen des AppPools für meine nicht funktionierende Website.

Jetzt funktioniert alles einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X