"Microsoft.ACE.OLEDB.12.0 ' dostawca nie jest zarejestrowany na maszynie lokalnej podczas eksportu danych do MS ACCESS

Jestem początkujący w korzystaniu z Microsft.ACE.OLEDB 12.0 Tworzę aplikację Winforms VS 2010.

I utworzyć funkcję do eksportu danych siatki danych do pliku MS Access. Używam Microsoft Oledb

Do eksportu danych z siatki danych do pliku MS Access.Ale dostaję ten błąd, gdy próbuję wyeksportować

The

Dane do ms access.

Zobacz poniższy obrazek.

Tutaj wpisz opis obrazka

Odnoszę się również do Microsoftu.Biblioteka Obiektów Office 12.0 w mojej aplikacji.

Tutaj wpisz opis obrazka

Batch Build Configuration

Tutaj wpisz opis obrazka

Author: halfer, 2013-07-18

6 answers

Odniesienie do Access Interop bitów nie ma nic wspólnego z Twoim wyjątkiem i Access Interop nie jest konieczne do użycia klas w System.Data.OleDb.

Problem pojawia się, gdy aplikacja jest skompilowana dla AnyCPU Platform, jesteś uruchomiony na 64-bitowym systemie i zainstalowany ADO.NET provider (Microsoft ACE.OLEDB.12.0) jest wersją 32-bitową.

Podczas korzystania z platformy docelowej AnyCpu twój kod będzie wykonywany jako kod 64-bitowy w systemach 64-bitowych i jako kod 32-bitowy w systemach 32-bitowych. Na aplikacja wykonana jako 64bit nie może używać sterowników 32bit (i viceversa). Teraz dodaj do miksu fakt, że Microsoft.ACE.OLEDB.12.0 ma dwie różne wersje. Jeden dla 64-bitowych i jeden dla 32-bitowych i nie mogą być zainstalowane razem na tej samej maszynie.

Najprostszym obejściem jest zmiana docelowej platformy aplikacji za pomocą menu Visual Studio

 BUILD -> Configuration Manager -> Active Solution Platform -> x86

Jeśli nie ma jeszcze opcji x86, Wybierz NEW, nazwij ją x86, Copy Settings from AnyCPU i sprawdzić Create new project platforms

Jeśli uważasz, że używanie aplikacji 32-bitowej na 64-bitowym systemie operacyjnym jest utratą wydajności lub czymś, czego należy unikać, zastanów się dwa razy i przeczytaj ten odnośnik gdzie zalety i wady AnyCpu są krytycznie zbadane. Jeśli nie masz konkretnego powodu, aby używać AnyCpu, lepiej pozostać przy x86.

Oczywiście inną opcją jest odinstalowanie 32-bitowej wersji i zainstalowanie 64-bitowej wersji ACE stąd , a następnie uruchomienie aplikacji jako AnyCpu w systemach 64bit. Ale może to być koszmar dla scenariuszy wdrażania. Co jeśli wersja Microsoft Office 32bit jest zainstalowana na komputerze docelowym x64? Office instaluje bitową wersję ACE i, jak wspomniano, nie jest możliwe zainstalowanie 32-bitowej i 64-bitowej wersji ACE na tej samej maszynie.
Teraz powinieneś również poprosić Klienta o ponowną instalację pakietu Office jako 64-bitowego, aby Twoja aplikacja 64-bitowa była szczęśliwa.

Aktualizacja


Sytuacja zmieniła się nieco z najnowsze wersje programu Visual Studio. Istnieje teraz nowa opcja, która jest domyślna dla nowych projektów. Nazywa się AnyCPU preferuje tryb 32bit . Więcej szczegółów pod tym linkiem: Co anycpu tak naprawdę oznacza od. NET 4.5 i Visual Studio 11 i kolejny ciekawy post (aczkolwiek dotyczący SQL Server Compact) to ten problem z dowolnym procesorem-preferującym 32 bit–BadImageFormatException

 56
Author: Steve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-10 18:15:40

Zmiana w puli aplikacji "Ustawienia zaawansowane", aby umożliwić uruchamianie programów 32-bitowych... to mi pomogło.

 10
Author: Freguz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-21 23:29:39

Mam podobny problem podczas czytania pliku Excel.

Historia problemu:

Niedawno przenieśliśmy naszą aplikację z 32-bitowej na 64-bitową ze względu na zapotrzebowanie na pamięć. W tym celu przeprowadziliśmy migrację naszego systemu windows 7 z 32-bitowego na 64-bitowy. Ale nadal zainstalowaliśmy 32-bitowy pakiet office na naszych maszynach.

Ponieważ z tego powodu mieliśmy ten problem podczas importowania danych Excela do aplikacji.

Rozwiązanie,

Pobrałem 64-bitową wersję http://www.microsoft.com/en-us/download/details.aspx?id=13255 i zainstalowany z argumentem jako,

AccessDatabaseEngine_x64.exe / passive

Bez zmiany kodu mój problem został rozwiązany.

Uwaga:

Na 64-bitowym systemie operacyjnym i 64-bitowym pakiecie office moja funkcjonalność działała bez tej poprawki. Ta poprawka jest wymagana tylko wtedy, gdy nasza aplikacja jest 64-bitowa uruchomiona na 64-bitowym systemie operacyjnym, który ma zainstalowane 32-bitowe Biuro.

 7
Author: Rahul Techie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-13 08:59:39

Base way:

Zastosowanie: MVC C#, Dla Win Server 64 bit:

  1. Usuń wszystkie zainstalowane pakiety office 32 bit.

  2. Link do pobrania: https://www.microsoft.com/en-us/download/details.aspx?id=13255

  3. Wybierz Pobierz 64-bitowy, a następnie zainstaluj go na serwerze (jeśli nie możesz skonfigurować programu. Proszę ponownie sprawdzić 1 punkt).

  4. Spróbuj ponownie uzyskać dostęp do aplikacji.Tutaj wpisz opis obrazka

 1
Author: Joh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 08:28:41

Dla mnie instalacja Microsoft Access Database Engine 2010 Redistributable rozwiązała problem, Wersja 32 bitowa.

 1
Author: Erik Pienknagura Dolberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 03:31:31

W moim przypadku

  1. Link do pobrania: https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Wybierz pobierz plik 32-bitowy, a następnie zainstaluj go na serwerze(nawet jeśli twój serwer jest 64-bitowy)
  3. Jeśli nie możesz skonfigurować programu Odinstaluj wersję 64 bitową.
  4. Spróbuj ponownie uzyskać dostęp do aplikacji
  5. Jeśli nadal występuje błąd (Ustaw Enable 32-bit Applications na True dla Twojej aplikacji w IIS)
 0
Author: Mostafa Sabeghi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-30 09:27:18