Microsoft.Ass.OLEDB.12.0 CSV ConnectionString
Ich weiß, Fragen dieser Art sind gebeten, von Zeit zu Zeit, aber ich finde keine befriedigende Lösung.
Wie kann ich eine CSV-Datei mit MS ACE OLEDB 12?
Ich versuche es mit dem folgenden code.
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();
Das Problem ist, dass nur eine Spalte gefunden wird. Der Text ist getrennt durch ';'. Auch wenn ich die genaue Angabe der Trennzeichen mit "Getrennt(|)" f.e. es wird nicht funktionieren.
Ich finde keine Dokumentation zu diesem Anbieter...
- Wir bewegen uns mehr und mehr Weg von ACE. Es hat eine Menge problem (fast keine Dokumentation, kein support, Probleme mit bestimmten Zeichen in den Daten oder Arbeitsblatt-Namen, ...). Wir fanden heraus, dass es ist schneller, leichter und zuverlässiger zu bedienen Interop statt, wenn Sie haben ein klares design, als ACE. Zusätzliche für CSV-wir sind mit einer anderen API (LumenWorks CSV-reader: codeproject.com/Articles/9258/A-Fast-CSV-Reader)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies hat mir geholfen, immer eine Semikolon-getrennte csv parsing in C# mit ACE.OLEDB.12.0:
http://sqlserverpedia.com/blog/sql-server-bloggers/use-ace-drivers-and-powershell-to-talk-to-text-files/:
Erstellen Sie eine schema.ini text-Datei im gleichen Verzeichnis wie die csv-Datei, die Sie importieren möchten, mit dem folgenden Inhalt:
Arbeitete für mich. Aber so yucky.
Scheint, wie die
FORMAT=Delimited(;)
im connection string ist aus der Mode gekommen...Versuchen:
(einfügen von "FORMAT=Delimited" in den erweiterten Eigenschaften der Verbindungszeichenfolge...)
Haben Sie als DataSet erstellen?