Próbuję uzyskać dane z pliku Excel dotyczące 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;";
Po kliknięciu przycisku pojawia się następujący błąd:
Dostawca „Microsoft.ACE.OLEDB.12.0” nie jest zarejestrowany na komputerze lokalnym.
Nie mam pojęcia, jak to naprawić. Mój system operacyjny to Windows 7.
execute master.dbo.xp_enum_oledb_providers
mówi ci, co jest na serwerze, a nie na twoim komputerze lokalnym .Odpowiedzi:
Musisz go zainstalować. Szukasz:
źródło
2007 Office System Driver: Data Connectivity Components
Natychmiastowa instalacja rozwiązanego problemu.64-bitowa wersja „Microsoft Access Database Engine 2010 Redistributable”, która pozwoli ci korzystać z dostawcy „Microsoft.ACE.OLEDB.12.0” jest dostępna tutaj:
http://www.microsoft.com/en-us/ download / details.aspx? id = 13255
Jeśli korzystasz z pobierania z zaakceptowanej odpowiedzi, będziesz musiał zbudować dla x86, jak wskazał @ backtestbroker.com.
źródło
w zależności od aplikacji (32 / 64bit) korzystającej z połączenia, które możesz właśnie zainstalować
Podsumowanie:
sprawdzić dostawców z polecenia PowerShell z 32- i 64-bitowej powłoce :
a zobaczysz, z którego dostawcy może korzystać Twój system
długa historia: ciągi można znaleźć w http://live.sysinternals.com/strings.exe
na przykład. w systemie 64-bitowym z zainstalowanymi sterownikami 32-bitowymi
nawet w nadchodzącym biurze 2016
znajdziesz struny
Microsoft.ACE.OLEDB
Microsoft.ACE.Oledb.12.0
Office 2013 jest również wyposażony w csi.dll
który zawiera plik „ Microsoft.ACE.OLEDB.15.0 ”
i Office 2016
który ma wersję „ Microsoft.ACE.OLEDB.16.0 ”
źródło
Get-OdbcDriver | select Name,Platform
Pierwszą rzeczą, którą musisz sprawdzić, jest konfiguracja kompilacji aplikacji.
Jeśli zbudowałeś projekt na platformie x86 , to aby rozwiązać problem, zainstaluj na swoim komputerze następujące pakiety:
Aby korzystać z dostawcy „Microsoft.ACE.OLEDB.12.0”, musisz najpierw zainstalować pakiet redystrybucyjny Microsoft Access Database Engine 2010 , ta instalacja jest dostępna pod adresem : http://www.microsoft.com/download/en/details.aspx ? id = 13255 .
Po zakończeniu instalacji spróbuj uruchomić aplikację, jeśli to rozwiąże problem, jeśli nie, przejdź do kroku 2.
Ten następny krok to niewyjaśnione obejście, które działa w pakiecie Office 2010, mimo że jest to komponenty łączności danych pakietu Office 2007. Nie jestem pewien, dlaczego to działa, ale działa i zostało udowodnione, że działa w prawie wszystkich przypadkach. Musisz zainstalować sterownik pakietu Office 2007: Data Connectivity Components , ta instalacja jest dostępna pod adresem : http://www.microsoft.com/download/en/confirmation.aspx?id=23734 .
Po zakończeniu instalacji spróbuj uruchomić aplikację, powinno to rozwiązać problem.
Jeśli próbujesz uruchomić aplikację zbudowaną na platformie x64 lub AnyCPU , polecam najpierw sprawdzenie, czy działa ona zgodnie z oczekiwaniami na platformie x86. Jeśli nie działa na tej platformie x86, wykonaj kroki z pierwszej części i sprawdź, czy działa zgodnie z oczekiwaniami.
Przeczytałem, że sterowniki MS Access, w tym sterownik bazy danych OLEDB, działają tylko na platformie x86 i są niezgodne na platformie x64 lub AnyCPU. Ale wydaje się to nieprawdziwe. Sprawdziłem, czy moja aplikacja działa podczas budowania x86, a następnie zainstalowałem aparat bazy danych Access, używając flagi pasywnej.
Po tych 2 krokach udało mi się uruchomić aplikację po zbudowaniu w konfiguracji kompilacji x64 lub AnyCPU. To wydawało się rozwiązać mój problem.
Uwaga: kolejność kroków wydaje się mieć znaczenie, więc postępuj zgodnie z nimi.
źródło
AceRedist.msi /passive
.Ten błąd / wyjątek wystąpił w programie Visual Studio 2010, gdy zmieniłem kompilację w oknie dialogowym Menedżer konfiguracji z „x86” na „Dowolny procesor”. Rozumiem, że ten sterownik bazy danych OLEDB działa tylko w architekturze x86 i nie jest kompatybilny z 64-bitami. Zmiana konfiguracji kompilacji z powrotem na x86 rozwiązała problem.
źródło
Zainstalowałem sterowniki MS i nadal nie działało to dla mnie. Potem znalazłem ten post na blogu, który rozwiązał problem. Przeczytaj to tam, w przeciwnym razie użyj tych dwóch obrazów (połączonych z tego postu) jako summary TLDR:
źródło
Jeśli używasz 64-bitowego systemu, ale nadal masz problem nawet po zainstalowaniu AccessDatabaseEngine, zobacz ten post , to rozwiązało problem dla mnie.
tj. Musisz zainstalować ten AccessDatabaseEngine
źródło
Dla wszystkich tych, których to dotyczy.
Wystąpił błąd ...
... jak opisano w OP, Shailesh Sahu.
Mam 64-bitowy system Windows 7.
Mój problem dotyczy skryptów PowerShell , ale używa ciągu połączenia, podobnego do postu OP, więc mam nadzieję, że moje ustalenia można zastosować do C #, PowerShell i dowolnego innego języka opartego na sterowniku „Microsoft.ACE.OLEDB”.
Postępowałem zgodnie z instrukcjami w tym wątku na forum MS: http://goo.gl/h73RmI
Najpierw próbowałem zainstalować wersję 64-bitową , a następnie zainstalować 32- bitową wersję AccessDatabaseEngine.exe z tej strony http://www.microsoft.com/en-us/download/details.aspx?id=13255
Ale wciąż nie ma radości.
Następnie uruchomiłem poniższy kod w PowerShell (ze strony SQL Panda http://goo.gl/A3Hu96 )
... co dało mi ten wynik (usunąłem inne źródła danych dla zwięzłości) ...
Jak widać, mam Microsoft.ACE.OLEDB. 15 .0 (piętnaście) nie Microsoft.ACE.OLEDB. 12 0,0 (dwanaście)
Więc zmieniłem ciąg połączenia na 15 i zadziałało.
Tak więc krótki fragment programu PowerShell w celu zademonstrowania, jak programowo kodować wersję ...
zmieniono, aby wybrać najnowszą wersję ACE, jeśli jest więcej niż jedna
Mamy nadzieję, że każdy, kto to znajdzie, może teraz sprawdzić, która wersja OLEDB jest zainstalowana i użyć odpowiedniego numeru wersji.
źródło
Chociaż udzielono wielu odpowiedzi, problem, który napotkałem, nie został jeszcze wymieniony.
Instalacja 32-bitowego instalatora AccessDatabaseEngine.exe pobranego z MS informuje o powodzeniu, ale NIE została zainstalowana, co zostało potwierdzone za pomocą skryptu Powershell jednego z powyższych wpisów.
Instalacja 64-bitowego instalatora AccessDatabaseEngine_X64.exe zgłosiła szokujący komunikat o błędzie:
Bardzo proste rozwiązanie zostało znalezione tutaj na stronie Autodesk. Po prostu dodaj parametr / passive do ciągu wiersza poleceń, tak jak poniżej:
Instalacja powiodła się, sterownik OleDb działał.
Pliki Excel, które przetwarzam za pomocą OleDb, są typu xlsx, wyprodukowane w programie EPPlus 4.5 i zmodyfikowane w programie Excel 2007.
źródło
Musisz zmienić Platformę rozwiązań z „Dowolnego procesora” na „x86” lub „x64”, w zależności od szybkości instalacji pakietu Office.
Kroki podano poniżej:
Kliknij prawym przyciskiem myszy plik rozwiązania w Eksploratorze rozwiązań:
Kliknij Aktywna platforma rozwijana, jeśli x86 już tam jest, wybierz ją, w przeciwnym razie kliknij Nowy.
Wybierz x86 lub x64 z menu rozwijanego nowej platformy:
Skompiluj i uruchom aplikację.
źródło
Jeśli zainstalowany „AccessDatabaseEngine” nadal nie pomaga, poniżej znajduje się rozwiązanie:
Musisz zmienić Active Solution Platform z „Any CPU” na „x86”.
Dostawca OLEDB nie jest zarejestrowany na komputerze lokalnym
Od CodeProject.com
źródło
Udało mi się to naprawić, wykonując czynności opisane w tym artykule: http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered- na lokalnej maszynie
Najważniejsze dla mnie było to:
Podczas debugowania za pomocą IIS
„Użyj 64-bitowej wersji IIS Express dla stron internetowych i projektów”
Po sprawdzeniu tej opcji, a następnie ustawieniu docelowej platformy mojego projektu z powrotem na „Dowolny procesor” (ustawiłem ją na x86 gdzieś w procesie rozwiązywania problemów), byłem w stanie przezwyciężyć błąd.
źródło
Jeśli debugujesz projekt internetowy, po prostu upewnij się, że IIS Express działa w wersji 32- lub 64-bitowej, w zależności od ustawień projektu.
Iść do
i stamtąd zaznacz (lub odznacz) „Użyj 64-bitowej wersji IIS Express ...”
źródło
Najpierw sprawdź, która wersja microsoft.ace.oledb.12.0 jest zainstalowana w twoim systemie.
Sprawdź poniżej ścieżki C: \ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - 64 bit jest zainstalowany
Sprawdź poniżej ścieżki C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - bit x86 jest zainstalowany
Jeśli zainstalowano (x86), wówczas za pomocą menedżera konfiguracji zmień platformę rozwiązań na x86, w przypadku zmiany x64 na x64.
Jeśli nie jest dostępny, zainstaluj za pomocą poniższego linku
https://www.microsoft.com/en-us/download/details.aspx?id=23734
źródło
syp_dino,
Rozwiązanie dla mnie zaproponowane dla dostawcy „Microsoft.ACE.OLEDB.12.0” nie jest zarejestrowane na komputerze lokalnym ” jest zmiana platformy rozwiązań aktywnych z „Any CPU” na „x86”.
Kiedy wykonałem te kroki, przebudowałem rozwiązanie, złapałem EXE i umieściłem w sieci, wszystko działało gładko na 64-bitowym komputerze z Windows 7.
źródło
Miałem ten problem podczas próby importowania danych z pliku Excela (xlsx) do bazy danych SQL Server przy użyciu SSMS 2014.
Instalacja pakietu Office 2007 Driver: Data Connectivity Components załatwiła sprawę.
źródło
Napotkałem ten sam problem. Przejdź do właściwości rozwiązania i zmień dowolny procesor na x86, myślę, że to zadziała.
źródło
wykonaj 2 kroki: 1. w tym menu: projekt -> właściwości twojego projektu ... -> Kompilacja: odznacz „preferuj 32-bity” 2. w połączeniu Ciąg: pisz cuotes przed i po rozszerzonych właściwościach, tak jak to: Rozszerzone właściwości = ' Excel 12.0 Xml; HDR = TAK ”
źródło
Te konfiguracje działały w styczniu 2020 roku na mojej nowej wersji maszyny:
(Tylko 1 - x64) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 zainstalowany z argumentem / passive, jawnie ustawione ustawienia kompilacji VStudio na x64, z następującym ciągiem połączenia: Dostawca = Microsoft.ACE.OLEDB.16.0; Źródło danych = D: ... \ MyDatabase.accdb
(2 - x64 lub x32) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 zainstalowany z / passive argument, PLUS AccessDatabaseEngine 2010 (32-bitowy) zainstalowany z / passive argument, ustawienia kompilacji VStudio ustawione na AnyCPU, z następującym ciągiem połączenia: Provider = Microsoft.ACE.OLEDB.16.0; Źródło danych = D: ... \ MyDatabase.accdb
(Tylko 3 - x32) Windows 10 x64, Office 365 x32, AccessDatabaseEngine 2010 (32-bitowy) zainstalowany z argumentem / passive, ustawienia kompilacji VStudio ustawione na x86, z następującym ciągiem połączenia: Dostawca = Microsoft.ACE.OLEDB.12.0; Źródło danych = D: ... \ MyDatabase.accdb
UWAGI NA TEMAT AWARII
Korzystanie z dostawcy ACE.OLEDB.12.0 x64 w ciągu połączenia nie powiodło się, a tylko AccessDatabaseEngine_x64 2016 zainstalowany jak wyżej w (1).
Użycie AnyCPU w ustawieniach kompilacji Visual Studio nie powiodło się w (1). Wymagane jest ustawienie x64. Być może dzieje się tak, ponieważ AnyCPU oznacza, że Vstudio musi zobaczyć dostawcę ACE.OLEDB.nn.0 x32 w czasie kompilacji.
ACE.OLEDB.12.0 2016 x32 / pasywny silnik NIE zainstalowałby się, gdy zobaczył aplikacje x64. (Działa ACE.OLEDB.12.0 2010 x32 / instalator pasywny.)
WNIOSKI
Aby korzystać z ustawień kompilacji x64, musisz mieć silnik bazy danych x64 2016 ORAZ ACE.OLEDB.16.0 dostawcę ciągu połączenia ORAZ jawne ustawienia kompilacji x64 do pracy z Office 365 w styczniu 2020 r. Korzystanie z opcji / passive ułatwia instalację. Podziękowania dla każdego, kto opublikował ten typ!
Aby użyć AnyCPU, musiałem mieć zainstalowany zarówno silnik ACE.OLEDB.12.0 2010 x32, jak i silnik ACE.OLEDB.16.0 x64. W ten sposób Vstudio mógł zobaczyć silniki x32 i x64 w czasie kompilacji „AnyCPU”. Mógłbym zmienić parametry połączenia dostawcy na ACE.OLEDB.12.0 dla operacji x32 lub na ACE.OLEDB.16.0 dla operacji x64. Oba działały dobrze.
Aby korzystać z ustawień kompilacji x86, musisz mieć silnik bazy danych x32 2010 ORAZ dostawcę ciągu połączenia ACE.OLEDB.12.0 ORAZ jawne ustawienia kompilacji x86 do pracy z Office 365 x32 w styczniu 2020 r.
źródło
Mam podobny problem podczas czytania pliku Excel.
Historia problemu:
Niedawno przeprowadziliśmy migrację naszej aplikacji z 32-bitowej na 64-bitową ze względu na wymaganą pamięć. W tym celu przeprowadziliśmy migrację systemu Windows 7 z wersji 32-bitowej na 64-bitową. Ale nadal zainstalowaliśmy 32-bitowe biuro na naszych komputerach.
ponieważ z tego powodu mieliśmy ten problem podczas importowania danych Excel do aplikacji.
Rozwiązanie,
Pobrałem 64-bitową wersję http://www.microsoft.com/en-us/download/details.aspx?id=13255 i zainstalowałem z argumentem jako,
AccessDatabaseEngine_x64.exe / passive
Bez zmiany kodu mój problem zostanie rozwiązany.
Uwaga:
W 64-bitowym systemie operacyjnym i 64-bitowym biurze moja funkcjonalność działała dobrze bez tej poprawki. Ta poprawka jest wymagana tylko wtedy, gdy nasza aplikacja jest 64-bitowa w 64-bitowym systemie operacyjnym z zainstalowanym 32-bitowym pakietem Office.
źródło
Wystarczy pobrać i zainstalować następujący silnik Access DB (X86 lub X64: zgodnie z konfiguracją komputera) i zobacz magię :)
https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255
źródło
Postępowałem zgodnie z instrukcjami określonymi przez innych; instalowanie tej poprawki, instalowanie tej poprawki, a także aparatu bazy danych Microsoft Access 2010.
Mój problem polegał na tym, że używam tej samej biblioteki (linq2sql) w 2 witrynach na moim komputerze; 1 działa, a 1 nie.
W końcu odkryłem, że musiałem „włączyć 32-bitowe aplikacje” w zaawansowanych ustawieniach aplikacji dla mojej niedziałającej strony.
Teraz wszystko działa dobrze.
źródło
można również wypróbować te kroki
W SQL Server: 1.Otwórz jedną bazę danych 2.Kliknij w opcji „Server Obtect” 3.Kliknij w „Połączonych serwerach” 4.Kliknij w „Dostawcach” 5.Kliknij sztywność w „Microsoft.ACE.OLEDB.12.0” 6. Odznacz wszystkie opcje i zamknij
źródło
Pamiętaj, aby zainstalować AccessDatabaseEngine na serwerze dla aplikacji sieci web.
źródło
Miałem ten sam problem, ale w tym przypadku dostawca microsoft-ace-oledb-12-0 został już zainstalowany na moim komputerze i działa dobrze dla innych opracowanych aplikacji.
Różnica między tą aplikacją a tą, w której miałem problem, polegała na tym, że Stare aplikacje działały w „ Lokalnych usługach IIS ”, podczas gdy ta z błędem była w „ IIS Express (uruchamiana z Visual Studio”). Więc to, co zrobiłem, to-
źródło
Miałem Microsoft Access Database Engine 2010 Redistributable już zainstalowany na moim komputerze, ale nadal otrzymania Provider Microsoft ACE OLEDB błąd.
Potem przypomniałem sobie, że niedawno uaktualniłem do pakietu Office 2016, więc być może powinienem spróbować zainstalować ponownie program Microsoft Access Database Engine 2010 Redistributable . I to rozwiązało problem na moim komputerze.
Jeśli więc uaktualniłeś do innej wersji MS Office lub nawet naprawiłeś / ponownie zainstalowałeś MS Office, spróbuj ponownie zainstalować program Microsoft Access Database Engine 2010 Redistributable, zanim zmarnujesz czas na znalezienie innych poprawek. Powodzenia!
źródło
1.) Sprawdź ciąg połączenia za pomocą ConnectionStrings.com .
2.) Upewnij się, że masz zainstalowany poprawny silnik bazy danych. Były to dwa silniki baz danych, które mi pomogły.
Aparat redystrybucyjny Microsoft Access Database Engine 2010
Sterownik pakietu Office 2007: Komponenty do przesyłania danych
3.) Może występować problem z tym, że twoja platforma docelowa to „Dowolny procesor”, może być konieczne „X86” (Właściwości, kompilacja, platforma docelowa).
źródło
Jeśli pojawi się ten błąd podczas próby użycia ACE z aplikacji ASP.NET, najbardziej prawdopodobną przyczyną jest zainstalowanie jednej z 32-bitowych wersji. Domyślnie usługi IIS w 64-bitowym systemie operacyjnym będą uruchamiać aplikacje w 64-bitowym procesie roboczym. Procesy 64-bitowe nie mogą załadować 32-bitowych bibliotek DLL. Po nawiązaniu połączenia z dostawcą ACE, proces 64-bitowy będzie próbował zlokalizować 64-bitową bibliotekę DLL. Jeśli nie istnieje, pojawi się komunikat o błędzie, który Cię tu przywiózł.
W takim przypadku masz dwie opcje. Najpierw możesz zainstalować wersję 64-bitową 2010. Jeśli masz zainstalowaną 32-bitową wersję 2007, możesz po prostu zainstalować 64-bitową wersję 2010 obok niej. Jeśli masz zainstalowaną 32-bitową wersję 2010 roku, musisz ją odinstalować, a następnie pobrać i zainstalować 64-bitową wersję 2010 roku. Nie można zainstalować jednocześnie 32- i 64-bitowej wersji dostawcy 2010. Jeśli wykonujesz instalację na swoim komputerze deweloperskim, możesz być również ograniczony przez nieco istniejącą instalację pakietu Office.
Drugą opcją jest zmiana puli aplikacji w IIS, aby włączyć aplikacje 32-bitowe. Jeśli korzystasz z pełnej wersji IIS, możesz to zrobić za pomocą narzędzia do zarządzania (Panel sterowania »Narzędzia administracyjne» Menedżer internetowych usług informacyjnych (IIS)).
Aby uzyskać więcej informacji, zapoznaj się z poniższym linkiem
źródło
Ten błąd wystąpił podczas importowania danych z pliku Excel do MS-SQL. Dostawca został już zainstalowany (wersja 64-bitowa) i dziwiło mnie to, dlaczego nie działało. Więc wszystko, co zrobiłem, to zlokalizowałem używaną tutaj aplikację Import / Export, tj. .EXE. I znalazłem to w
Następnie uruchomiłem bezpośrednio plik .exe, aby wykonać import danych. I zadziałało!
źródło
To mi teraz działało.
Ale w przypadku pakietu aplikacji można użyć dowolnego z następujących rozwiązań:
Lub
źródło