Microsoft.ACE.OLEDB.12.0 CSV ConnectionString

Je sais que des questions de cette nature sont en demande de temps en temps mais je ne trouve pas de solution satisfaisante.

Comment puis-je ouvrir un Fichier CSV à l'aide de MS ACE OLEDB 12?
J'ai essayer avec le code suivant.

DbConnection connection = new OleDbConnection();
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents;Extended Properties=\"Text;HDR=Yes\"";
connection.Open();
DbCommand cmd;

cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM [Mappe1#csv]";
DbDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    for (int i = 0; i < reader.FieldCount; i++)
        Console.Write("(" + reader.GetValue(i).ToString() + ")");

    Console.WriteLine();
}

cmd.Dispose();
connection.Dispose();
Console.WriteLine("Done");
Console.ReadKey();

Le Problème est qu'une seule colonne est trouvé. Le Texte est délimité par des ';'. Même quand je spécifier le délimiteur avec "Délimité(|)" f.e. il ne fonctionnera pas.

Je ne trouve pas de documentation pour cet hébergeur...

Nous nous dirigeons de plus en plus loin de ACE. Il a beaucoup de problème (presque pas de documentation, pas de soutien, des problèmes avec les caractères spécifiques dans les données ou les noms de feuille de calcul, ...). Nous avons constaté qu'il est plus rapide, plus facile et plus fiable à l'utilisation de l'Interopérabilité au lieu de cela, si vous avez un design épuré, que l'AS. Supplémentaires pour CSV, nous utilisons une autre API (LumenWorks CSV reader: codeproject.com/Articles/9258/A-Fast-CSV-Reader)

OriginalL'auteur SACO | 2011-03-03