Autor Beitrag
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 01.07.10 09:01 
Hallo,

ich möchte gerne eine CSV-Datei in eine DataTable laden. Zu Testzwecken habe ich folgende simple Datei:
ausblenden Quelltext
1:
2:
3:
Spale1, Spalte2
1,Hallo Welt
2,Schönes Wetter


und benutze folgenden Codeschnipsel:
ausblenden 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:

csvtable

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
Einloggen, um Attachments anzusehen!