2010-08-27 3 views
0

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

Путь к файлу данных - 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. Дайте мне знать, если вам нужна дополнительная информация. Спасибо за вашу помощь.

ответ

3

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

Я использую 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 находится в выбранном сообщении. Я просто следовал конвенции в связанном посте, и это сработало для меня.

+0

+1 для нахождения рабочего решения и отправки его здесь (в отличие от удаления вопроса, как это делают некоторые люди). – Tomalak

+0

@ Томалак: Спасибо за голосование. – Jeremy