0

我使用Visual Studio 2012來創建連接到Access 2013數據庫下面的編程線的Web應用程序:什麼是Access 2013的OleDb連接字符串?

string connectionString = "provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + Page.Server.MapPath("App_Data\\db1.accdb"); 

但未能將其展開,由於錯誤

Microsoft.ACE.OLEDB.12.0 is not found in local machine

什麼是Microsoft Access 2013的正確連接字符串?

+0

你是否驗證過'Page.Server.MapPath()'返回一個有效的路徑,否則這個連接字符串看起來很好。你可以找到連接字符串[here](http://www.connectionstrings.com)。 – BenFradet 2013-03-26 10:25:20

+0

這是我的數據庫分配我已經驗證 – wesleylim1993 2013-03-26 11:36:59

+0

我做了另一個編輯我的答案。 – 2013-03-26 18:00:45

回答

4

本機充當Web服務器必須有「Microsoft Access數據庫引擎2010」安裝。如果機器沒有安裝在其上的訪問,那麼你可以下載引擎here安裝程序。

請注意,64位安裝程序僅包含64位版本;它不包括32位版本(在同一頁上單獨提供)。

編輯...

至於連接字符串,我只測試了以下的VBScript我Access_2013機器上,它工作得很好。

Option Explicit 
Dim con, rst 
Set con = CreateObject("ADODB.Connection") 
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Gord\Desktop\Database1.accdb;Persist Security Info=False;" 
Set rst = CreateObject("ADODB.Recordset") 
rst.Open "SELECT Col1 FROM Table1", con 
Wscript.Echo rst(0).Value 
rst.Close 
Set rst = Nothing 
con.Close 
Set con = nothing 

我從connectionstrings.com複製連接字符串。

編輯...

如果您可以訪問到Web服務器,您可以檢查以下兩個文件的存在:

C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL 

C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL 

在64位機第一文件表示已安裝64位版本的Access數據庫引擎。在32位機器上,它表示已安裝32位版本。

如果第二(x86)的文件存在,那麼你知道Jet數據庫引擎的32位版本存在於64位計算機上。

編輯回覆:最後的評論

問題確實涉及到Jet數據庫引擎的 「位數」:

i install "Microsoft Access Database Engine 2010" 64 bit i should install 32bit due to my visual studio is 32bit thanks for the advice

+0

感謝您的回覆,但它不起作用,它仍然彈出相同的錯誤: 「Microsoft.ACE.OLEDB.12.0」提供程序未在本地計算機上註冊 您是否知道什麼是字符串連接Microsoft Access 2013? – wesleylim1993 2013-03-26 12:28:28

+0

@ user712063我已更新我的答案。 – 2013-03-26 13:33:16

+0

如果我的消息來源是這樣的: string connectionString =「provider = Microsoft.ACE.OLEDB.12.0;」 +「data source =」+ Page.Server.MapPath(「App_Data \\ db1.accdb」); //創建一個OleDbConnection對象連接到數據庫 System.Data.OleDb.OleDbConnection康恩=新 System.Data.OleDb.OleDbConnection(的connectionString); 我應該將其更改爲: – wesleylim1993 2013-03-26 13:44:07

0

這裏使用

provider=Microsoft.ACE.OLEDB.15.0

這是的MS Access連接字符串2013

0

這取決於你所安裝的辦公室,如果你有64位Office,那麼你必須編譯應用程序作爲64位允許它運行,所以如果你想讓它在X36運行,則必須安裝office的x86接受,我嘗試了以上所有解決方案,但沒有工作,直到當我意識到我的辦公室x64bit,所以我構建的應用程序爲x64和工作。

我也意識到,如果你把它放到任何CPU,但沒有設置prefere 32位也適用

相關問題