2012-05-27 108 views
2

我正在使用VS 2010和C#。我想用C#連接到MDB。 「到現在我做了什麼如下:C#中的MSAccess連接(VS 2010)

string strAccessConn = "Provider=Microsoft.ACE.OLEDB.4.0;Data Source=C:\\Databases\\"+DBname+".mdb"; 

DataSet myDataSet = new DataSet(); 
OleDbConnection myAccessConn = null; 

try 
{ 
    myAccessConn = new OleDbConnection(strAccessConn); 

    OleDbCommand myAccessCommand = new OleDbCommand(Query, myAccessConn); 
    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand); 

    myAccessConn.Open(); 
    myDataAdapter.Fill(myDataSet, "Table"); 
} 
catch(Exception Ex) 
{ 
    MessageBox.Show(Ex.ToString()); 
} 
finally 
{ 
    myAccessConn.Close(); 
} 

數據庫返回有效的數據集...當我更改連接字符串

爲Access 2000數據庫,那不是問題

然而

string strAccessConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Databases\\"+DBname+".mdb"; 

對於MSAccess2007數據庫路徑未找到,並且生成了一個異常(儘管存在)。我是否缺少任何參考?

+0

'Microsoft.ACE.OLEDB.4.0'你確定嗎?你的意思是'Microsoft.Jet.OLEDB.4.0'嗎?什麼是異常消息? – Steve

回答

0

試着改變你的Access數據文件的擴展名從.mdb.accdb

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Databases\\"+DBname+".accdb"; 

參考見connectionstrings.com

+0

謝謝Filburt它的工作..... –