Bonjour,
Je ne suis pas développeur, mais dans le cadre d'un projet je dois faire une petite appli.
J'utilise l'ide visual studio et developpe en vb.net


Voila mon problème:
J'utilise une datagridview afin de récupérer des informations pour une DB.
Pour l'instant mes tests se limitent à afficher les données saisies.
Je souhaite récupérer les valeurs de champs tant que la valeur de la 1ere colonne n'est pas vide (il n'y a que 2 colonnes).

Voici mon code:
(toutes mes variables sont déclarées)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
i = 0
Do
var1 = DataGridView1.Rows.Item(i).Cells.Item(0).Value
var2 = DataGridView1.Rows.Item(i).Cells.Item(1).Value
i = i + 1
MsgBox("colonne 1: " & var1)
MsgBox("colonne 2: " & var2)
Loop While DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value
Ca fonctionne jusqu'à la derniere itération où là j'ai le message suivant sur la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Loop While DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value
l'index était hors limite. Il ne doit pas être négatif ou inferieur à la taille de la collection. nom du parametre: index.
J'ai regardé sur MSDN, mais je n'ai pas compris leurs explications.

J'ai fait un autre test pour voir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
i=0 
if While DataGridView1.Rows.Item(i).Cells.Item(0).Value IsNot DBNull.Value then 
var1 = DataGridView1.Rows.Item(i).Cells.Item(0).Value 
var2 = DataGridView1.Rows.Item(i).Cells.Item(1).Value 
i = i + 1 
MsgBox("Colonne 1: " & var1)  
MsgBox("Colonne 2: " & var2)  
end if
Et là, pas de soucis même si le champs est vide.

voila voila.
Merci