2013-02-16 2 views
0

У меня есть программа, в которой он тестирует, может ли он подключиться к базе данных. Он либо подключается к базе данных SQL Server через ODBC, либо через Microsoft Access (.mdb) через ODBC. 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-сервера. Независимо от того, что я делаю, я не могу подключить его с помощью Access, хотя у меня есть еще одна программа, которая просто использует эту строку подключения для доступа и отлично работает, но она не будет работать здесь. Я пробовал сделать следующее:

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

, и это тоже не сработало. Что мне не хватает? Что мне нужно сделать, чтобы открыть соединение Access? Он не работает прямо в строке odbcConn.Open().

ответ

0

Ну, только что выяснилось по собственной проблеме около 2 минут слишком поздно. Оказывается, нет 64-битного драйвера для Microsoft Access. По приложению было нацелено на 64-битное, и поэтому он не смог найти сушилку. Я просто изменился на x86, и он работал нормально.

+0

Кроме того, помните, что есть две установки ODBC в 64-разрядной системе. – Rob

+0

Существует 64-битный драйвер для доступа, и он бесплатный, http://stackoverflow.com/tags/ms-access/info. Я думаю, вы должны означает, что вы не установили 64-битный драйвер. – Fionnuala

Смежные вопросы