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.
Cóż, musisz go zainstalować. You're looking for:
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.
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.