Hallo,
ich möchte gerne eine CSV-Datei in eine
DataTable laden. Zu Testzwecken habe ich folgende simple Datei:
Quelltext
1: 2: 3:
| Spale1, Spalte2 1,Hallo Welt 2,Schönes Wetter |
und benutze folgenden Codeschnipsel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| public static DataTable CsvFileToDataSet(string aFileName) { if (!File.Exists(aFileName)) throw new FileNotFoundException();
FileInfo fileInfo = new FileInfo(aFileName); DataTable dataTable = new DataTable(); string connectionString = String.Format("Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq={0};", fileInfo.DirectoryName); OdbcConnection connection = new OdbcConnection(connectionString); OdbcDataAdapter da = new OdbcDataAdapter(String.Format("select * from [{0}]", fileInfo.Name), connection);
da.Fill(dataTable); return dataTable;
} |
Wenn ich die Datei "dummy
.csv" nenne, dann funktioniert das ganze auch, benenne ich die gleiche Datei hingegen in "dummy
.xyz" um, dann bekomme ich diese Fehlermeldung:
Scheinbar scheint der Odbc Provider tatsächlich auf die Dateiendung zu achten. Da ich aber gerne anhand der Dateiendung entscheiden möchte, was ich mit den CSV-Daten mache, würde ich ihm das gerne austreiben. Leider habe ich keine Idee wie. Kann mir vielleicht jemand von euch helfen?
Gruß
Klabautermann