Forums Neueste Beiträge
 

CSV Mapping ohne schema.ini

11/06/2008 - 11:04 von bpetri | Report spam
Hallo zusammen,

ich lese momentan über einen OleDbDataAdapter eine CSV-Datei in einen
Dataset ein. Dies funktioniert soweit auch wunderbar. Auftretende
Probleme umschiffe ich bisher mit Hilfe einer schema.ini Datei. Nun
ist jedoch vor Einlesen einer neuen CSV-Datei jedesmal die manuelle
Änderung des Dateinamens in der schema.ini notwendig.

Deswegen die Frage ob es entweder vielleicht einen Wildcard Operator
für den Dateinamen gibt ([*.csv] funktionier leider nicht) oder
vielleicht die Möglichkeit das Mapping manuell im Code festzulegen -
also so etwas wie die schema.ini, nur auf den DataAdapter angewendet.
Bisher erstelle ich das DataSet wie folgt.

Dim ds AsDataSet = New DataSet
Dim sql As String = "SELECT * FROM [" & GetFileName(csvfile) &
"]"
Dim da As OleDbDataAdapter = New OleDbDataAdapter(sql,
CType(conn, OleDbConnection))

da.Fill(ds, csvfile)

Nun gibt es ja die Möglichkeitden Datentyp der Columns des DataTables
(ds.Tables(0)) zu setzen:
ds.Tables(0).Columns(14).DataType System.Type.GetType("System.Double")
Das funktioniert aber nur solange noch keine Daten innerhalb der
DataTable stehen, ich bràuchte daher eine Lösung die noch vor dem
Füllen des DataSets greift. Hab schon mit FillSchema
herumexperimentiert, bin jedoch da auch zu keiner Lösung gekommen.

Hoffentlich weiss jemand von Euch Rat?!?

Gruss,
Björn
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
11/06/2008 - 12:05 | Warnen spam
Hallo,

schrieb:

Nun ist jedoch vor Einlesen einer neuen CSV-Datei jedesmal die manuelle
Änderung des Dateinamens in der schema.ini notwendig.



Für solche Fàlle hab ich die schema.ini als Template in meiner Anwendung
und speichere die dann vor dem Import mit den richtigen Werten in dem
Verzeichnis, in dem die CSV Datei liegt.

Deswegen die Frage ob es entweder vielleicht einen Wildcard Operator
für den Dateinamen gibt ([*.csv] funktionier leider nicht)



Nö, leider nicht (AFAIK)

vielleicht die Möglichkeit das Mapping manuell im Code festzulegen -
also so etwas wie die schema.ini, nur auf den DataAdapter angewendet.



Das wàre evtl. auch möglich, erscheint mir aber zu kompliziert. Speicher
halt eine CSV Datei mit mit dem gewünschten Namen im Quellverzeichnis,
das sollte passen.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen