'Microsoft.Ass.OLEDB.12.0' - provider ist nicht registriert auf der lokalen Maschine

Ich versuche Daten aus einer Excel-Datei auf einer Schaltfläche click-Ereignis. Mein connection string:

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

Wenn ich auf den button klicken, bekam ich die folgende Fehlermeldung:

'Microsoft.Ass.OLEDB.12.0' - provider ist nicht registriert auf der lokalen Maschine.

Ich habe keine Ahnung, wie man dieses Problem beheben. Mein Betriebssystem ist Windows 7.

Nur eine tangentiale Kommentar: die Verwendung von OLE DB zu Lesen, eine Excel-Datei ist uralt tech, sehr langsam, und als Sie entdeckt haben, erfordert die Installation zusätzlicher Pakete manuell auf der Ziel-Maschine. (Zugegeben, die Frage wurde in 2011.) Lieber ClosedXml (auf NuGet), die funktioniert direkt aus der box.
Wäre schön gewesen, aber ClosedXml funktioniert nur für .xlsx-Dateien nicht .xls
Wenn Sie den Import in Sql Server können Sie diese Abfrage ausführen ssms: execute master.dbo.xp_enum_oledb_providers Es wird Ihnen sagen, welche Anbieter es denkt, dass Sie haben. Es alt mir, ich hatte beide von Microsoft.Ass.OLEDB.16.0 und Microsoft.Ass.OLEDB.12.0, aber als ich versuchte, Daten zu importieren, ich habe das gleiche "nicht registriert auf Ihrer lokalen Maschine", wie der OP, sowohl für Excel 16 und Excel 2007-Dateiformate (oledb.16.0 und oledb.12.0 jeweils). Macht es Sinn, schneiden Sie Ihre Verluste und geben Sie auf der Microsoft-software an diesem Punkt.
Siehe auch diese Antwort stackoverflow.com/a/14401857/21579, die den Unterschied zwischen Microsoft.Jet.OLE DB und Microsoft.Ass.OleDb.

InformationsquelleAutor Shailesh Sahu | 2011-07-11

Schreibe einen Kommentar