2009-06-23 10 views
1

Pourquoi le code ci-dessous génère-t-il 3 lignes dans ma grille de données alors qu'il n'y a que 2 lignes dans mon fichier CSV? Je me retrouve avec 2 rangées peuplées et une rangée vide. Le fichier CSV contient seulement 2 lignes. Je suspecte la logique du code ci-dessous.Une ligne supplémentaire dans 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 

Merci

+1

Y a-t-il une dernière ligne vide dans le fichier? Un chariot-retour errant? –

+0

Avez-vous une nouvelle ligne supplémentaire à la fin de votre fichier csv? – codefly

Répondre

0

Avez-vous une fuite de bout de ligne à la fin de la dernière ligne? Si c'est le cas, le code verra le fichier sous forme de deux lignes complètes et une ligne vide.

Si vous savez que vous aurez toujours un séparateur final (coupure de ligne dans ce cas), il vous suffira alors de retirer une valeur supplémentaire de 1, puis de terminer la valeur de la boucle for. Sinon, vérifiez d'abord la dernière ligne (pour voir si vous avez besoin de boucler une fois de moins) ou vérifiez chaque ligne dans la boucle (ce sera beaucoup moins efficace).

2

Si la propriété AllowUserToAddRows de datagridview est définie sur true, une ligne supplémentaire avec un "*" apparaît à cet effet.

+0

C'est la solution la plus probable, la dernière ligne aura la propriété IsNewRow définie sur True –

Questions connexes