2013-02-16 121 views
0

我有一個程序,在該程序中測試它是否可以建立數據庫連接。它通過ODBC連接到SQL Server數據庫或通過ODBC連接到Microsoft Access(.mdb)。 Sql的工作正常,但我不知道如何讓訪問一個工作。無法打開訪問ODBC連接

System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection(); 
if ({SQL})//If SQL, setup SQL server connection string 
    odbcConn.ConnectionString = @"Driver={SQL Server};Server={server};Database={DB};@";Uid=  {uid};Pwd={pwd};"; 
else //Otherwise it's access so setup access string 
    odbcConn.ConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};Dbq={path}\test.mdb;Pwd={pwd};"; 

string testQuery = "SELECT 1"; 
OdbcCommand odbcComm = new OdbcCommand(testQuery); 
try 
{ 
    odbcComm.Connection = odbcConn; 
    odbcConn.Open(); 
    odbcComm.ExecuteNonQuery(); 
} 

這適用於SQL Server。不管我做什麼,我都無法使用Access進行連接,即使我有另一個簡單地使用該連接字符串進行訪問的程序,並且工作正常,但它在這裏不起作用。我試圖做到以下幾點:

odbcComm.CommandText = "Select 1"; 
OdbcDataReader data = odbcComm.ExecuteReader(); 

而且也沒有工作。我錯過了什麼?我需要做些什麼才能打開Access連接?它在odbcConn.Open()行失敗。

回答

0

好吧,剛剛通過自己的問題解決了大約2分鐘太晚了。原來沒有Microsoft Access的64位驅動程序。應用程序的目標是64位,所以它無法找到乾燥機。我只是改爲x86,它工作正常。

+0

此外,請記住在64位系統上有兩個ODBC設置 – Rob 2013-02-16 08:04:09

+0

有一個64位驅動程序的Access和它是免費的,我認爲你必須意味着你沒有安裝64位驅動程序。 – Fionnuala 2013-02-16 12:05:24