ASP.NET: не удалось найти устанавливаемое исключение ISAM при попытке чтения файла dBASE IV

Мне нужно открыть и прочитать файл базы данных в моем приложении ASP.NET. Когда я пытаюсь установить соединение, я получаю исключение «Не удалось найти устанавливаемый ISAM». Я пробовал решения из верхнего ответа в этом вопросе, но они сделали у меня не работает.

Путь к файлу данных - C: \ dev \ DATA.DBF. Вот код, который я использую, чтобы попытаться открыть соединение:

Dim connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\dev\DATA.DBF;Extended Properties=dBASE IV;"
Dim connection As OleDbConnection = New OleDbConnection(connectionString)
connection.Open()

На этом этапе я получаю исключение «Не удалось найти устанавливаемый ISAM». У вас есть идеи, что я могу попробовать, чтобы это работало? Обратите внимание, что я могу импортировать этот файл в базу данных Access как файл dBASE IV.

Я использую Visual Studio 2008 в Windows 7. Сообщите мне, если вам понадобится дополнительная информация. Спасибо за вашу помощь.


person Jeremy    schedule 27.08.2010    source источник


Ответы (1)


Я нашел решение этой проблемы. Я использовал технику, описанную в этом посте.

Я использую соединение ODBC вместо соединения OLE. Вот код:

Dim connectionString = "Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=C:\dev;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"
Dim connection As OdbcConnection = New OdbcConnnection(connectionString)
Dim command As OdbcCommand = New OdbcCommand("SELECT * FROM C:\dev\DATA.DBF", connection)
connection.Open()
Dim reader As OdbcDataReader = command.ExecuteReader()
connection.Close()

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

person Jeremy    schedule 30.08.2010
comment
+1 за то, что нашел рабочее решение и разместил его здесь (в отличие от удаления вопроса, как это делают некоторые люди). - person Tomalak; 17.09.2010