2009-06-23 13 views
1

Warum ergibt der folgende Code 3 Zeilen in meinem Datagrid, wenn nur zwei Zeilen in meiner CSV-Datei vorhanden sind? Ich habe am Ende 2 aufgefüllte Zeilen und eine leere Zeile. Die CSV-Datei enthält nur 2 Zeilen. Ich vermute die Logik des Codes unten.Eine zusätzliche Zeile im DataGridView

Do While Read() 
    row = New DataGridViewRow() 
    For Index = 0 To FieldCount - 1 
     cell = New DataGridViewTextBoxCell() 
     cell.Value = GetString(Index).ToString() 
     row.Cells.Add(cell) 
    Next 
    DataView.Rows.Add(row) 
Loop 

Dank

+1

Gibt es eventuell eine leere Zeile in der Datei? Eine fehlgeleitete Wagenrückgabe? –

+0

Haben Sie einen zusätzlichen Zeilenumbruch am Ende Ihrer CSV-Datei? – codefly

Antwort

0

Haben Sie am Ende der letzten Zeile ein hinteres Ende-of-line haben? Wenn dies der Fall ist, sieht der Code die Datei als zwei vollständige Zeilen und eine leere.

Wenn Sie wissen, dass Sie immer ein abschließendes Trennzeichen haben (in diesem Fall einen Zeilenumbruch), dann nehmen Sie einfach einen zusätzlichen 1 aus und dann den Endwert der for-Schleife. Andernfalls überprüfen Sie zuerst die letzte Zeile (um zu sehen, ob Sie noch einmal weniger Schleife benötigen) oder überprüfen Sie jede Zeile innerhalb der Schleife (dies wird weit weniger effizient sein).

2

Wenn die AllowUserToAddRows-Eigenschaft von datagridview auf true gesetzt ist, wird für diesen Zweck eine zusätzliche Zeile mit einem "*" angezeigt.

+0

Dies ist die wahrscheinlichste Lösung. In der letzten Zeile wird die IsNewRow-Eigenschaft auf True gesetzt –

Verwandte Themen