iT邦幫忙

0

請問C#讀取Access

今天有需求要用C#來讀寫Access檔案,
結果出現了一個錯誤,

'Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上。

去網路上查了之後,
發現了一個驚人的事,
有人說Microsoft.Jet不支援64位元,只能在x86下運行,
偏偏程式的記憶體需求高,
又要用64位元來編譯,
看了很多Access的教學文,
都是用Oledb配合Microsoft.Jet的方式,
想問一下各位功力高強的大大,
有沒有其他方式可以讀寫Access,
感激不盡~
/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif

http://einboch.pixnet.net/blog/post/245703881-c%23%E5%B0%8Daccess%E6%AA%94%E6%A1%88%E9%80%B2%E8%A1%8C%E5%A2%9E%E3%80%81%E5%88%AA%E3%80%81%E6%9F%A5%E3%80%81%E6%94%B9%E5%8A%9F%E8%83%BD
pcw iT邦新手 2 級 ‧ 2018-04-11 08:17:47 檢舉
@richardsuma 那篇文章還是用 `Microsoft.Jet.OLEDB.4.0`
Daniel iT邦新手 2 級 ‧ 2018-04-11 10:00:34 檢舉
會不會是要安裝 Access Database Engine?
這個有 64 位元版本

1 個回答

1
pcw
iT邦新手 2 級 ‧ 2018-04-11 08:10:20
最佳解答

Provider=Microsoft.Jet.OLEDB.4.0改成Provider=Microsoft.ACE.OLEDB.12.0
應該就可以了。
若還不行可能是電腦沒有安裝Microsoft.ACE.OLEDB.12.0,要去https://www.microsoft.com/zh-tw/download/details.aspx?id=13255 下載Microsoft Access Database Engine 2010 可轉散發套件

看更多先前的回應...收起先前的回應...
pigleader iT邦新手 5 級 ‧ 2018-04-12 08:58:53 檢舉

補充一下 pcw大說的,之前剛好有在 64位元存取 access的經驗,後來我是裝 https://www.microsoft.com/en-us/download/details.aspx?id=54920 、2010的也是OK,不過在使用某個套件查詢資料有遇到怪問題(忘記哪個)、記得專案要設定成 64位元

小魚 iT邦研究生 1 級 ‧ 2018-04-12 12:02:28 檢舉

恩恩, 感恩, 我再試試
/images/emoticon/emoticon41.gif

小魚 iT邦研究生 1 級 ‧ 2018-04-14 09:51:08 檢舉

我知道問題了,因為我安裝了32位元的Office,結果沒辦法安裝64位元的可轉散發套件...

小魚 iT邦研究生 1 級 ‧ 2018-04-14 10:38:07 檢舉

原來是ACE不是JET,解決問題了,感恩~

我要發表回答

立即登入回答