2010-08-27 45 views
0

Je dois ouvrir et lire un fichier Dbase dans mon application ASP.NET. Lorsque j'essaie d'ouvrir la connexion, j'obtiens l'exception "Impossible de trouver l'ISAM installable". J'ai essayé les solutions dans la réponse supérieure dans this question, mais ils n'ont pas fonctionné pour moi.ASP.NET: exception "Impossible à trouver ISAM installable" lors de la tentative de lecture du fichier dBASE IV

Le chemin de fichier du fichier de données est C: \ dev \ DATA.DBF. Voici le code que je utilise pour essayer d'ouvrir la connexion:

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() 

A ce stade, je reçois l'exception « Impossible de trouver ISAM installable. » Avez-vous des idées sur ce que je peux faire pour que cela fonctionne? Notez que je suis capable d'importer ce fichier dans une base de données Access en tant que fichier dBASE IV. Je cours Visual Studio 2008 sur Windows 7. Faites-moi savoir si vous avez besoin de plus d'informations. Merci de votre aide.

Répondre

3

J'ai trouvé une solution à ce problème. J'ai utilisé la technique décrite dans this post. J'utilise une connexion ODBC au lieu d'une connexion OLE. Voici le code:

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() 

Notez que le nom du répertoire du fichier DBF est dans la chaîne de connexion, tandis que le chemin complet du fichier DBF est dans l'instruction select. J'ai simplement suivi la convention dans le post lié, et cela a fonctionné pour moi.

+0

+1 pour trouver une solution de travail et l'afficher ici (par opposition à la suppression de la question, comme le font certaines personnes). – Tomalak

+0

@Tomalak: Merci pour le vote up. – Jeremy