Saya mencoba untuk mendapatkan data dari file Excel pada acara klik tombol. String koneksi saya adalah:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";
Ketika saya mengklik tombol, saya mendapat kesalahan berikut:
Penyedia 'Microsoft.ACE.OLEDB.12.0' tidak terdaftar pada mesin lokal.
Saya tidak tahu bagaimana cara memperbaikinya. Sistem operasi saya adalah Windows 7.
execute master.dbo.xp_enum_oledb_providers
memberi tahu Anda apa yang ada di server bukan di Mesin Lokal Anda .Jawaban:
Nah, Anda perlu menginstalnya. Kamu sedang mencari:
sumber
2007 Office System Driver: Data Connectivity Components
menyelesaikan masalah dengan segera.Versi 64-bit dari 'Microsoft Access Database Engine 2010 Redistributable' yang akan memungkinkan Anda untuk menggunakan penyedia 'Microsoft.ACE.OLEDB.12.0' tersedia di sini:
http://www.microsoft.com/en-us/ unduh / details.aspx? id = 13255
Jika Anda menggunakan unduhan dari jawaban yang diterima, Anda harus membuat untuk x86, seperti yang ditunjukkan oleh @ backtestbroker.com.
sumber
tergantung pada aplikasi (32 / 64bit) menggunakan koneksi yang baru saja Anda instal
Ringkasan:
periksa penyedia Anda dengan perintah powershell dari shell 32 dan 64bit :
dan Anda akan melihat penyedia mana yang dapat digunakan sistem Anda
cerita panjang: string dapat ditemukan dengan http://live.sysinternals.com/strings.exe
misalnya. pada Sistem 64bit dengan driver 32bit diinstal
bahkan di kantor yang akan datang 2016
Anda akan menemukan senarnya
Microsoft.ACE.OLEDB
Microsoft.ACE.Oledb.12.0
Office 2013 juga dilengkapi dengan csi.dll
yang berisi " Microsoft.ACE.OLEDB.15.0 "
dan Kantor 2016
yang memiliki versi " Microsoft.ACE.OLEDB.16.0 "
sumber
Get-OdbcDriver | select Name,Platform
Hal pertama yang perlu Anda periksa adalah konfigurasi build aplikasi Anda.
Jika Anda telah membangun proyek Anda di bawah platform x86 , maka untuk menyelesaikan masalah Anda, Anda harus menginstal paket-paket berikut pada mesin Anda:
Untuk menggunakan penyedia 'Microsoft.ACE.OLEDB.12.0' Anda harus menginstal Microsoft Access Database Engine 2010 Redistributable terlebih dahulu, instalasi ini tersedia di: http://www.microsoft.com/download/en/details.aspx ? id = 13255 .
Setelah instalasi selesai, coba jalankan aplikasi Anda, jika ini menyelesaikan masalah hebat, jika tidak, lanjutkan ke langkah 2.
Langkah selanjutnya ini merupakan solusi yang tidak dapat dijelaskan, yang berfungsi untuk Office 2010, meskipun itu adalah Komponen Konektivitas Data Office 2007. Saya tidak yakin mengapa ini berhasil, tetapi itu berhasil dan ini terbukti bekerja di hampir semua kasus. Anda perlu menginstal Driver Sistem Office 2007: Komponen Konektivitas Data , instalasi ini tersedia di: http://www.microsoft.com/download/en/confirmation.aspx?id=23734 .
Setelah instalasi ini selesai, coba jalankan aplikasi Anda, ini akan menyelesaikan masalah.
Jika Anda mencoba menjalankan aplikasi yang dibangun di bawah platform x64 atau AnyCPU , saya akan merekomendasikan terlebih dahulu memvalidasi bahwa itu berjalan seperti yang diharapkan di bawah platform x86. Jika tidak berjalan di bawah platform x86 itu, lakukan langkah-langkah di bagian pertama dan validasikan bahwa itu berjalan seperti yang diharapkan.
Saya memang membaca bahwa driver MS Access termasuk driver Database OLEDB hanya berfungsi di bawah platform x86 dan tidak kompatibel di bawah platform x64 atau AnyCPU. Tetapi ini tampaknya tidak benar. Saya memvalidasi aplikasi saya berjalan ketika membangun x86, kemudian saya menginstal Access Database Engine menggunakan bendera pasif.
Setelah 2 langkah ini saya berhasil menjalankan aplikasi saya setelah membangun konfigurasi build x64 atau AnyCPU. Ini muncul untuk menyelesaikan masalah saya.
Catatan: Urutan langkah-langkah tampaknya membuat perbedaan, jadi harap ikuti.
sumber
AceRedist.msi /passive
.Saya mendapatkan kesalahan / pengecualian ini di Visual Studio 2010 ketika saya mengubah build saya di kotak dialog Configuration Manager dari "x86" menjadi "Any CPU". Driver database OLEDB ini yang saya pahami hanya berfungsi di x86 dan tidak kompatibel dengan 64bit. Mengubah konfigurasi build kembali ke x86 memecahkan masalah bagi saya.
sumber
Saya menginstal driver MS dan itu masih tidak berhasil untuk saya. Kemudian saya menemukan posting blog ini yang menyelesaikan masalah. Baca di sana, kalau tidak gunakan dua gambar ini (ditautkan dari pos itu) sebagai ringkasan TLDR:
sumber
Jika Anda menggunakan 64-bit tetapi masih mengalami masalah bahkan setelah menginstal AccessDatabaseEngine, lihat posting ini , itu memecahkan masalah bagi saya.
yaitu Anda harus menginstal AccessDatabaseEngine ini
sumber
Untuk semua yang masih terkena dampak ini.
Saya mendapatkan kesalahan ...
... seperti yang dijelaskan oleh OP, Shailesh Sahu.
Saya memiliki 64bit Windows 7.
Masalah saya ada di dalam skrip PowerShell , tetapi menggunakan string koneksi, mirip dengan posting OP, jadi semoga temuan saya dapat diterapkan ke C #, PowerShell dan bahasa lain yang mengandalkan pengandar "Microsoft.ACE.OLEDB".
Saya mengikuti instruksi pada utas forum MS ini: http://goo.gl/h73RmI
Saya pertama kali mencoba menginstal versi 64bit , kemudian menginstal versi 32bit dari AccessDatabaseEngine.exe dari halaman ini http://www.microsoft.com/en-us/download/details.aspx?id=13255
Tapi tetap tidak ada sukacita.
Saya kemudian menjalankan kode di bawah ini di PowerShell (dari situs SQL Panda http://goo.gl/A3Hu96 )
... yang memberi saya hasil ini (saya telah menghapus sumber data lain untuk singkatnya) ...
Seperti yang Anda lihat, saya punya Microsoft.ACE.OLEDB. 15, 0 (lima belas) bukan Microsoft.ACE.OLEDB. 12, 0 (dua belas)
Jadi, saya mengubah string koneksi saya menjadi 15 dan itu berhasil.
Jadi, cuplikan singkat PowerShell untuk mendemonstrasikan cara soft-code versi ...
diubah untuk memilih versi ACE terbaru, jika lebih dari satu
Mudah-mudahan, siapa pun yang menemukan ini sekarang dapat memeriksa untuk melihat apa versi OLEDB diinstal dan menggunakan nomor versi yang sesuai.
sumber
Meskipun banyak jawaban telah diberikan, masalah yang saya temui belum disebutkan.
Instalasi 32-Bit Installer AccessDatabaseEngine.exe yang diunduh dari MS melaporkan keberhasilan, tetapi TIDAK diinstal, sebagaimana diverifikasi dengan Skrip Powershell dari salah satu posting di atas di sini.
Instalasi penginstal 64-Bit, AccessDatabaseEngine_X64.exe melaporkan pesan kesalahan yang mengejutkan:
Solusi yang sangat sederhana telah ditemukan di sini di situs Autodesk. Cukup tambahkan parameter / pasif ke string baris perintah, seperti ini:
Instalasi berhasil, driver OleDb bekerja.
File Excel yang saya proses dengan OleDb adalah tipe xlsx, diproduksi dengan EPPlus 4.5 dan dimodifikasi dengan Excel 2007.
sumber
Anda perlu mengubah Platform Solusi dari "Any CPU" ke "x86" atau "x64" berdasarkan bitness dari instalasi kantor.
Langkah-langkahnya diberikan di bawah ini:
Klik kanan pada File Solusi di Solution Explorer:
Klik pada Active Platform Drop down, jika x86 sudah ada di sana lalu pilih itu, kalau tidak klik Baru.
Pilih x86 atau x64 dari dropdown platform baru:
Kompilasi dan jalankan aplikasi Anda.
sumber
Jika "AccessDatabaseEngine" yang diinstal masih tidak membantu, di bawah ini solusinya:
Anda perlu mengubah Platform Solusi Aktif dari "CPU" menjadi "x86".
Penyedia OLEDB Tidak Terdaftar pada Mesin Lokal
Dari CodeProject.com
sumber
Saya dapat memperbaikinya dengan mengikuti langkah-langkah di artikel ini: http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered- di-mesin-lokal
Poin kunci bagi saya adalah ini:
Saat debugging dengan IIS,
"Gunakan IIS Express versi 64 bit untuk situs web dan proyek"
Setelah memeriksa opsi itu, kemudian mengatur target platform proyek saya kembali ke "Any CPU" (saya telah mengaturnya ke x86 di suatu tempat dalam proses pemecahan masalah), saya dapat mengatasi kesalahan tersebut.
sumber
Jika Anda sedang men-debug proyek web, pastikan IIS Express berjalan dalam 32 atau 64 bit tergantung pada pengaturan proyek Anda.
Pergi ke
dan dari sana periksa (atau hapus centang) 'Gunakan versi 64 bit dari IIS Express ...'
sumber
Pertama, pastikan versi microsoft.ace.oledb.12.0 mana yang diinstal di sistem Anda.
Periksa di jalur di bawah C: \ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL --64 bit diinstal
Periksa di jalur di bawah C: \ Program Files (x86) \ File Umum \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL - x86 bit diinstal
Jika (x86) diinstal maka gunakan platform konfigurasi manajer ubah solusi ke x86, untuk x64 ubah ke x64.
Jika tidak tersedia maka instal menggunakan tautan di bawah ini
https://www.microsoft.com/en-us/download/details.aspx?id=23734
sumber
syp_dino,
Solusi bagi saya seperti yang Anda sarankan untuk penyedia "Microsoft.ACE.OLEDB.12.0 'tidak terdaftar pada mesin lokal" kesalahannya adalah mengubah Platform Solusi Aktif dari "CPU Apa Pun" menjadi "x86".
Ketika saya melakukan langkah-langkah itu, membangun kembali solusi, meraih EXE dan ditempatkan di dalam jaringan, semuanya bekerja dengan lancar pada mesin Windows 7 64 bit.
sumber
Saya punya masalah ini ketika mencoba mengimpor data dari file excel (xlsx) ke SQL Server DB menggunakan SSMS 2014.
The 2007 Sistem Office Supir: Data Connectivity Components menginstal melakukan trik untuk saya.
sumber
Saya menghadapi masalah yang sama ini. Pergi ke Properti Solusi dan ubah CPU Apa saja menjadi x86, saya pikir itu akan melakukan pekerjaan.
sumber
lakukan 2 langkah ini: 1. di menu ini: proyek -> properti proyek Anda ... -> Bangun: hapus centang "prefer 32-Bit" 2. in connectionString: tulis cuote sebelum dan sesudah Extended properties, seperti ini: Extended Properties = ' Excel 12.0 Xml; HDR = YA '
sumber
Konfigurasi ini bekerja pada Januari 2020 di mesin baru saya:
(1 - x64 saja) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 diinstal dengan / argumen pasif, pengaturan build VStudio diatur ke x64 secara eksplisit, dengan string koneksi berikut: Penyedia = Microsoft.ACE.OLEDB.16.0; Sumber Data = D: ... \ MyDatabase.accdb
(2 - x64 atau x32) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 diinstal dengan / argumen pasif, PLUS AccessDatabaseEngine 2010 (32bit) diinstal dengan / argumen pasif, pengaturan build VStudio diatur ke AnyCPU, dengan string koneksi berikut: Penyedia = Microsoft.ACE.OLEDB.16.0; Sumber Data = D: ... \ MyDatabase.accdb
(3 - x32 saja) Windows 10 x64, Office 365 x32, AccessDatabaseEngine 2010 (32bit) diinstal dengan / argumen pasif, pengaturan build VStudio diatur ke x86, dengan string koneksi berikut: Penyedia = Microsoft.ACE.OLEDB.12.0; Sumber Data = D: ... \ MyDatabase.accdb
CATATAN KEGAGALAN
Menggunakan ACE.OLEDB.12.0 x64 penyedia dalam string koneksi gagal dengan hanya AccessDatabaseEngine_x64 2016 yang diinstal seperti di atas dalam (1).
Menggunakan AnyCPU di pengaturan pembuatan studio visual gagal dalam (1). Diperlukan pengaturan x64. Mungkin ini karena AnyCPU berarti bahwa Vstudio harus melihat penyedia x32 ACE.OLEDB.nn.0 pada waktu kompilasi.
Mesin ACE.OLEDB.12.0 2016 x32 / pasif TIDAK akan menginstal ketika melihat aplikasi x64 sekitar. (Penginstal pasif ACE.OLEDB.12.0 2010 x32 / bekerja.)
KESIMPULAN
Untuk menggunakan pengaturan build x64, Anda harus memiliki engine database x64 2016 DAN ACE.OLEDB.16.0 koneksi-string DAN pengaturan build x64 eksplisit untuk bekerja dengan Office 365 pada Januari 2020. Menggunakan opsi / pasif membuat instalasi mudah. Penghargaan bagi siapa pun yang memposting tip itu!
Untuk menggunakan AnyCPU, saya perlu memiliki mesin x32 ACE.OLEDB.12.0 2010 dan mesin ACE.OLEDB.16.0 x64 diinstal. Dengan begitu Vstudio dapat melihat mesin x32 dan x64 pada waktu kompilasi "AnyCPU". Saya bisa mengubah string koneksi provider ke ACE.OLEDB.12.0 untuk operasi x32 atau ke ACE.OLEDB.16.0 untuk operasi x64. Keduanya bekerja dengan baik.
Untuk menggunakan pengaturan build x86, Anda harus memiliki mesin database x32 2010 DAN penyedia string-koneksi ACE.OLEDB.12.0 DAN pengaturan build x86 eksplisit untuk bekerja dengan Office 365 x32 pada Januari 2020.
sumber
Saya memiliki masalah serupa ketika kita membaca file Excel.
Sejarah masalah:
Kami baru-baru ini memigrasi aplikasi kami dari 32-bit ke 64-bit karena persyaratan memori. Untuk itu kami memigrasikan windows 7 dari 32-bit ke 64-bit. Tetapi kami masih memasang kantor 32-bit pada mesin kami.
karena, kami mengalami masalah ini saat mengimpor data Excel ke dalam aplikasi.
Larutan,
Saya mengunduh versi 64-bit dari http://www.microsoft.com/en-us/download/details.aspx?id=13255 dan diinstal dengan argumen sebagai,
AccessDatabaseEngine_x64.exe / pasif
Tanpa perubahan kode, masalah saya dapat diatasi.
catatan:
Pada OS 64-bit dan kantor 64-bit, fungsionalitas saya berfungsi dengan baik tanpa perbaikan ini. Perbaikan ini hanya diperlukan saat aplikasi kami berjalan 64-bit pada OS 64-bit yang memiliki kantor 32-bit diinstal di dalamnya.
sumber
Cukup unduh & instal mesin Access DB berikut (X86 atau X64: sesuai konfigurasi mesin Anda) dan lihat keajaibannya :)
https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255
sumber
Saya mengikuti instruksi yang ditetapkan oleh orang lain; menginstal tambalan ini, menginstal tambalan itu serta Microsoft Access Database Engine 2010.
Masalah saya adalah bahwa saya menggunakan perpustakaan yang sama (linq2sql) di 2 situs di mesin saya; 1 bekerja dan 1 tidak.
Akhirnya saya menemukan bahwa saya harus "mengaktifkan aplikasi 32 bit" di pengaturan lanjutan apppool untuk situs saya yang tidak berfungsi.
Semuanya berfungsi dengan baik sekarang.
sumber
juga bisa mencoba langkah-langkah ini
Dalam SQL Server, 1.Buka satu basis data 2.Clic di opsi 'Server Obtect' 3.Clic di 'Linked Server' 4.Clic di 'Penyedia' 5.Clic Rigth di 'Microsoft.ACE.OLEDB.12.0' 6. Hapus centang pada semua opsi dan tutup
sumber
Ingatlah untuk menginstal AccessDatabaseEngine di server untuk aplikasi web.
sumber
Saya memiliki masalah yang sama tetapi dalam hal ini penyedia microsoft-ace-oledb-12-0 sudah diinstal pada mesin saya dan bekerja dengan baik untuk aplikasi lain yang dikembangkan.
Perbedaan antara aplikasi tersebut dan yang saya punya masalah adalah Aplikasi Lama berjalan di " IIS Lokal " sedangkan yang dengan kesalahan ada di " IIS Express (berjalan dari Visual Studio"). Jadi apa yang saya lakukan adalah-
sumber
Saya memiliki Microsoft Access Database Engine 2010 Redistributable yang sudah diinstal pada mesin saya tetapi masih menerima Penyedia Microsoft ACE OLEDB kesalahan .
Kemudian saya ingat bahwa saya telah memutakhirkan ke Office 2016 baru-baru ini, jadi, mungkin saya harus mencoba menginstal ulang Microsoft Access Database Engine 2010 Redistributable . Dan itu memperbaiki masalah pada mesin saya.
Jadi, jika Anda telah memutakhirkan ke versi MS Office yang berbeda atau bahkan memperbaiki / menginstal ulang MS Office Anda, maka coba instal ulang Microsoft Access Database Engine 2010 Redistributable sebelum membuang-buang waktu dengan mencari perbaikan lainnya. Semoga berhasil!
sumber
1.) Verifikasi string koneksi Anda dengan ConnectionStrings.com .
2.) Pastikan Anda memiliki mesin database yang benar diinstal. Ini adalah dua mesin basis data yang membantu saya.
Microsoft Access Database Engine 2010 Redistributable
2007 Office System Driver: Komponen Konektivitas Data
3.) Mungkin ada masalah dengan platform target build Anda menjadi "Any CPU", mungkin harus "X86" (Properties, Build, Platform Target).
sumber
Jika Anda mendapatkan kesalahan ini ketika mencoba menggunakan ACE dari aplikasi ASP.NET, kemungkinan besar penyebabnya adalah Anda telah menginstal salah satu dari versi 32-bit. Secara default, IIS pada sistem operasi 64-bit akan menjalankan aplikasi dalam proses pekerja 64-bit. Proses 64-bit tidak dapat memuat DLL 32-bit. Ketika panggilan dilakukan ke penyedia ACE, proses 64 bit akan berusaha menemukan DLL 64-bit. Jika tidak ada, Anda mendapatkan pesan kesalahan yang membawa Anda ke sini.
Dalam hal ini Anda memiliki dua opsi. Pertama, Anda dapat menginstal versi 2010 64-bit. Jika Anda menginstal versi 2007 32-bit, Anda dapat menginstal versi 2010 64-bit di sampingnya. Jika Anda menginstal versi 32-bit 2010, Anda harus menghapus instalan dan mengunduh serta menginstal versi 64-bit 2010. Anda tidak dapat menginstal versi 32-dan 64-bit dari penyedia 2010 yang diinstal secara bersamaan. Jika Anda melakukan instalasi pada mesin pengembangan Anda, Anda mungkin juga terkendala oleh sedikit instalasi Office yang ada.
Opsi kedua adalah mengubah kumpulan aplikasi di IIS untuk mengaktifkan aplikasi 32-bit. Jika Anda menggunakan versi lengkap IIS, Anda dapat menggunakan alat manajemen untuk melakukan ini (Control Panel »Alat Administratif» Manajer Layanan Informasi Internet (IIS)).
Untuk pemahaman lebih lanjut silakan lihat tautan di bawah ini
sumber
Saya menerima kesalahan ini ketika mengimpor data dari file Excel ke MS-SQL. Penyedia sudah diinstal (64-bit) dan ini mengejutkan saya mengapa tidak bekerja. Jadi yang saya lakukan adalah mencari aplikasi Impor / Ekspor yang digunakan di sini yaitu .EXE. Dan saya menemukannya di
Saya kemudian menjalankan .exe secara langsung untuk melakukan impor data. Dan itu berhasil!
sumber
Ini bekerja untuk saya sekarang.
Tetapi untuk paket aplikasi Anda, Anda dapat menggunakan solusi berikut:
Atau
sumber