'Microsoft.ACE.OLEDB.12.0' provider nie jest zarejestrowany na lokalnym komputerze

Próbuję pobrać dane z pliku Excel na podstawie zdarzenia kliknięcia przycisku. Mój ciąg połączenia to:

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

Kiedy klikam na przycisk, dostaję następujący błąd:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Nie mam pojęcia, jak to naprawić. Mój system operacyjny to Windows 7.

Rozwiązanie

Cóż, musisz go zainstalować. You're looking for:

Komentarze (12)

64-bitowa wersja 'Microsoft Access Database Engine 2010 Redistributable', która pozwoli na korzystanie z 'Microsoft.ACE.OLEDB.12.0' dostawcy jest dostępna tutaj:
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Jeśli używasz pobierania z zaakceptowanej odpowiedzi, będziesz musiał zbudować dla x86, jak wskazał @backtestbroker.com.

Komentarze (8)

Otrzymałem ten błąd / wyjątek w Visual Studio 2010, gdy zmieniłem mój build w oknie dialogowym Configuration Manager z "x86" na "Any CPU". Ten sterownik bazy danych OLEDB, jak rozumiem, działa tylko w x86 i nie jest kompatybilny z 64bit. Zmiana konfiguracji budowania z powrotem na x86 rozwiązała dla mnie problem.

Komentarze (2)