ADO.NET CSV auf deutschen Systemen

Wer sich schon mal mit CSV-Import unter C# herumgeschlagen hat, wird sich auf einem deutschen System vielleicht über folgende Meldung gefreut haben:
„Unbehandelte Ausnahme: System.Data.OleDb.OleDbException: Das Feldtrennzeichen für die angegebene Textdatei entspricht dem Dezimaltrennzeichen oder Texttrennzeichen.“
Hierbei handelt es sich um einen ganz großen Wurf von Microsoft: Das Trennzeichen (also das Komma) darf nicht zugleich das Trennzeichen für Fließpunktzahlen (also das Komma in Deutschland) sein. (Das kann doch nicht wirklich deren Ernst sein? Wozu gibt es Feldbegrenzer?)

Jedenfalls hilft es hierbei, das Kommazeichen für Bruchzahlen (1,23) auf einen Punkt zu setzen (1.23). Dies geschieht über die schema.ini

[test.csv]
Format=Delimited(,)
DecimalSymbol=.

Die schema.ini ist dann noch mal ein ganz eigener Spaß… (bitte selber googlen, falls ihr nichts mit schema.ini anfangen könnt)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *