2016-11-06 6 views
-1

Я пытаюсь подключить доступ * .dbf-файл в ASP.NET, выбрать некоторые данные и отобразить в html. Однако я не могу установить связь. Я полагаю, проблема лежит в строке соединения.Connot подключиться к .dbf файлу в C#

OdbcConnection conn = new OdbcConnection(); 
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.12.0;Data Source=c:\Data;Extended Properties=dBASE 5.0;User ID=Admin;Password=;"; 

conn.Open(); 

Я получаю следующее сообщение об ошибке:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

К сожалению, ни один ни одно из решений, размещенных в старых вопросов не решить мою проблему.

Я использую Visual Studio Community 2015, Windows 10 64-bit.

Я предполагаю, что Поставщик может быть не прав. Однако я не так хорош в этой теме, поэтому я не знаю, как это сделать надлежащим образом. Я был бы очень благодарен за пошаговую инструкцию и за любые полезные советы.

файл * .dbf является один из файлов из архива здесь: DBF File

+0

См. [Этот сайт] (https://www.connectionstrings.com/dbf-foxpro/) и попробуйте различные строки подключения (провайдеры). – MFatihMAR

+1

Ваша строка подключения - это только '' Data Source = c: \ Data' - вам не нужно указывать имя файла? – ChrisF

ответ

0

Jet 4.0 работает только в 32-битном режиме. Вам нужно будет обновить приложение для работы в 32-битном режиме. Проверьте эту информацию на connectionstrings.com около running jet in 32 bit mode on a 64 bit machine.

Вы можете увидеть эту ссылку из connectionstrings.com, которая показывает microsoft dbf connection. Похоже, что для версии dbase используются римские цифры вместо 5.0.

0

Мне удалось установить соединение с этим кодом, но ему необходимо было установить драйвер VFPOLEDB.

private DataTable myTable() 
{ 
     OleDbConnection conn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=c:\\Data\\;Extended Properties=dBASE IV;User ID=;Password=;"); 
     conn.Open(); 

     string query = "SELECT * FROM d:\\data\\Earthquakes1970"; 
     OleDbCommand cmd = new OleDbCommand(query, conn); 

     DataTable dt = new DataTable(); 
     dt.Load(cmd.ExecuteReader()); 

     conn.Close(); 

     return dt; 
    } 
+0

Ваше соединение должно указывать на PATH, что файлы таблиц данных (.dbf) расположены. Тогда ваш запрос может просто ссылаться на имя таблицы без полной ссылки на путь. Легче иметь дело, особенно если путь когда-либо изменяется, вы просто меняете строку соединения для пути. – DRapp

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

  • Нет связанных вопросов^_^