2011-02-02 244 views
2

我想通過windows server 2008 R2標準的ado.net連接c#中的ms訪問數據庫。當連接ms訪問數據庫時出現連接錯誤

 
using System.Data.OleDb; 

OleDbConnection connectionAccess = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\testTable.mdb"); 
OleDbDataAdapter adapterAccess = new OleDbDataAdapter("Select * from test", connectionAccess); 
DataSet ds = new DataSet(); 
adapterAccess.Fill(ds); 
dataGridView1.DataSource = ds.Tables[0]; 

但它給出了一個錯誤:

 
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. 

你有什麼建議,爲什麼這個錯誤是來了。 如果它沒有註冊,那麼如何註冊這個。

在此先感謝

回答

0

這可能是因爲Windows用戶seucrity設置問題,請在路徑等

2

的問題可能是平臺的權利。 Jet OLEDB僅支持x86(32位操作系統),而不支持x64 64位。沒有64位版本的噴氣機,這就是爲什麼你得到這個錯誤。

強制您的應用程序使用32位將Visual Studio中高級編譯器選項中的目標CPU更改爲x86。

similar question on MSDN可能會有所幫助。

也嘗試自己手動註冊DLL。 爲了您的Jet 4.0 dll的路徑是:

 
Microsoft Jet 4.0 OLE DB Provider 
Provider=Microsoft.Jet.OLEDB.4.0 
C:\WINNT\System32\Msjetoledb40.dll 
C:\WINNT\System32\Msjet40.dll 
C:\WINNT\System32\Mswstr10.dll 
C:\WINNT\System32\Msjter40.dll 
C:\WINNT\System32\Msjint40.dll

通過在命令提示符下使用regsvr32這樣註冊的dll:

regsvr32 C:\WINNT\System32\Msjetoledb40.dll 
+1

@dinesh庫馬爾你可以得到64位的ACE引擎免費( http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en)它向後兼容Jet。這些鏈接也可能有用:http://technet.microsoft.com/en-us/library/ee681792.aspx和http://support.microsoft.com/kb/942976 – Fionnuala 2011-02-02 09:25:03