錯誤:未在本地計算機上註冊 Microsoft.ACE.OLEDB.12.0 提供程式
阿新 • • 發佈:2020-10-10
今天有朋友諮詢學習教程裡面資料庫一章時,當程式執行到 conn.Open 這個位置時產生錯誤:
未在本地計算機上註冊 Microsoft.ACE.OLEDB.12.0 提供程式。
使用的的連線語句:
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=D:\lessons\Northwind1.mdb;"
剛看到這個錯誤,我也比較奇怪,因為教程程式碼都是在我計算機上都是測試通過的。
首先問到的情況是,朋友計算機使用的是office access2016的版本,我的計算機上使用的是2010的版本,初步推測是因為版本問題,網上初步搜尋的結果是office 2013對應為 Microsoft.ACE.OLEDB.14.0 ,office 2016對應為 Microsoft.ACE.OLEDB.16.0 。於是顯示請他按照這個修改了ConnectionString語句。
這次,我仔細搜尋了一下,發現不管office 2013還是office 2016,都應該使用Microsoft.ACE.OLEDB.12.0。
於是我就遠端看了一下朋友的計算機。發現系統用的64位,office也是64位,將vb.net編輯器下的cpu修改為X64,就執行正確了。
其實在教程《Visual Basic.Net 循序漸進》第19章 資料庫操作 第19.3.1節《連線字串》一節有寫開發32位程式和64位程式時候的連線語句不一樣,但是忘了寫還要與資料庫引擎32位還是64位配套,如果64位的資料庫引擎(office 64位)那麼別忘了開發的程式也需要設定為使用64位CPU。
特此記下防止忘記。