2013-02-16 118 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