我有一个程序,它在其中测试是否可以建立数据库连接。它通过ODBC连接到SQL Server数据库,或者通过ODBC连接Microsoft Access(.mdb)。Sql的工作很好,但我不知道如何让access的工作。
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()行失败。
我们刚刚通过自己的问题解决了,大约晚了2分钟。事实证明,Microsoft Access没有64位驱动程序。By应用程序的目标是64位,所以它找不到干燥剂。我只是简单地换了x86,它运行得很好。