ich überführe eine csv datei in ein dataset per
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
conn.Open();
string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName) + "]";
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
System.Data.DataSet ds = new System.Data.DataSet("CSV File");
adapter.Fill(ds);
return ds.Tables[0];
Meine Datei hat 10 Zeilen mit 17 Spalten, die Methode bringt mir aber ca 3900 zeilen ins DataSet - Die 10 Zeilen und 3890 Leerzeilen. Es würde sicher helfen von Hand die Zeilen unter meinem 10 Zeilen Inhalt in Excel zu markieren und Del zu drücken, dann wäre die Datei sauber.
Wie kann ich mein Problem lösen?
Versuch einmal den Query so zu überarbeiten, dass du gezielt abfragst, dass der Inhalt nicht "" sein darf.
Hast du das CSV zufällig mit nem aktuellen Excel erstellt? Seit der neuen Version ist es bei mir nämlich auch so, daß nach gefüllten Zeilen noch ne ganze Menge Leerzeilen eingefügt werden. Lösung? Bisher noch nicht, außer die CSV mit texteditor nachzubearbeiten :-|
roses are #FF0000 violets are #0000FF
all my base are belong to you
Die csv Dateien sind von div. Kunden wo wohl Excel 2003 und Excel 2007 vertreten sind.
Wenn man sich die csv Dateien in einem Editor anschaut, sieht man, dass die Leerzeilen nur die Trenner Semikolon enthalten.
Ich hab´ den query entsprechend angepasst und in der where bedingung null und '' ausgeschlossen.