Untuk semua yang masih terkena dampak ini.
Saya mendapatkan kesalahan ...
OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."
... 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 )
(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
... yang memberi saya hasil ini (saya telah menghapus sumber data lain untuk singkatnya) ...
SOURCES_NAME SOURCES_DESCRIPTION
------------ -------------------
Microsoft.ACE.OLEDB.15.0 Microsoft Office 15.0 Access Database Engine OLE DB Provider
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 ...
$AceVersion = ((New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Where-Object { $_.SOURCES_NAME -like "Microsoft.ACE.OLEDB*" } | Sort-Object SOURCES_NAME -Descending | Select-Object -First 1 SOURCES_NAME).SOURCES_NAME
$connString = "Provider=$AceVersion;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=NO`";"
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.