"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.
Odnoszę się również do Microsoftu.Biblioteka Obiektów Office 12.0 w mojej aplikacji.
Batch Build Configuration
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
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.
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.
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:
Usuń wszystkie zainstalowane pakiety office 32 bit.
Link do pobrania: https://www.microsoft.com/en-us/download/details.aspx?id=13255
Wybierz Pobierz 64-bitowy, a następnie zainstaluj go na serwerze (jeśli nie możesz skonfigurować programu. Proszę ponownie sprawdzić 1 punkt).
Spróbuj ponownie uzyskać dostęp do aplikacji.Tutaj wpisz opis obrazka
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.
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
- Link do pobrania: https://www.microsoft.com/en-us/download/details.aspx?id=13255
- Wybierz pobierz plik 32-bitowy, a następnie zainstaluj go na serwerze(nawet jeśli twój serwer jest 64-bitowy)
- Jeśli nie możesz skonfigurować programu Odinstaluj wersję 64 bitową.
- Spróbuj ponownie uzyskać dostęp do aplikacji
- Jeśli nadal występuje błąd (Ustaw Enable 32-bit Applications na True dla Twojej aplikacji w IIS)
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