C# Ouvrir fichier DBF

Je vais avoir un problème de l'ouverture du fichier DBF - je besoin de l'ouvrir, de tout lire et de le traiter. J'ai essayé plusieurs solutions (ODBC/OLEDB), plusieurs chaîne de connexion, mais rien n'a fonctionné jusqu'à présent.

Le problème c'est que quand j'exécute la commande SQL pour obtenir tout ce à partir du fichier, rien ne revient - pas de lignes. Ce qui est encore plus étrange, le contenu de la DBF fichier ouvert supprimés.

Voir le code que j'ai:

public override bool OpenFile(string fileName, string subFileName = "")
{
    OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(fileName) + ";Extended Properties=dBASE IV;User ID=;Password=;");
    try
    {
        if (con.State == ConnectionState.Closed) { con.Open(); }
        OleDbDataAdapter da = new OleDbDataAdapter("select * from " + Path.GetFileName(fileName), con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        con.Close();
        int i = ds.Tables[0].Rows.Count;
        return true;
    }
    catch
    {
        return false;
    }             
}

J'ai débogué le code et regardé le fichier ouvert dans l'Explorateur Windows. Quand il atteint cette ligne:

da.Fill(ds);

la taille du fichier est tombé à seulement quelques Octets (de quelques centaines de ko).

Ma prochaine pensée était de faire de la DBF fichier en lecture seule. Que toutefois provoquer une "exception inattendue d'un pilote externe".

Donc ma question est - ce que le diable? Je suis sûr que le fichier est pas corrompu, c'est une exportation directe de quelques DB. (Non, je n'ai pas accès à cette DB). Je peux également ouvrir ce fichier dans MS Office, pas de problème.

je ne peux pas partager le fichier DBF - il contient des données confidentielles.

  • Avez-Vous essayé de problème DbCommand (SELECT * from) au lieu d'utiliser la carte de données? Juste pour vérifier si cela fonctionne.
  • Question idiote, mais ne le Jet pilote de comprendre les fichiers DBF?
  • Lâche l'adaptateur et de simplifier le SQL. Actuellement en comprend .DBF. Vous pouvez également obtenir les propriétés d'une connexion ouverte.
  • J'ai essayé le DbCommand version, même résultat. Je veux aussi l'extension du nom de fichier, également le même résultat. Je suppose que je dois utiliser un mauvais pilote...