[VB.NET]Operation sur datagridview

cs_mgomez Messages postés 6 Date d'inscription vendredi 26 mars 2010 Statut Membre Dernière intervention 24 octobre 2013 - 22 févr. 2013 à 11:07
 Utilisateur anonyme - 22 févr. 2013 à 12:56
Bonjour à tous, et merci d'avance pour votre aide.

petit "probleme", que je n'arrive pas à m'expliquer.
j'essaie de faire des comparaisons sur des cellules de datagridview (cela me semblait pas si difficile que ça !!)
j'ai donc un datagridview appelé "Grille1" alimenté par un fichier XML
un bindingsource lié à ma grille appelé "bs1"

voici le bout de code "simplifié" que j'utilise.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
bs1.MoveFirst()
For i = 0 To Grille1.Rows.Count - 1
If Grille1.CurrentRow.Cells(0).Value > Grille1.CurrentRow.Cells(1).Value Then MessageBox.Show(Grille1.CurrentRow.Cells(0).Value & ">" & Grille1.CurrentRow.Cells(1).Value)
bs1.MoveNext()
Next
End Sub

Je pensais donc avoir un message si la valeur de la premiere cellule est superieure à la valeur de la seconde.
hors j'arrive à un résultat déroutant...
je peux avoir un résultat du genre "56 > 114" ou alors pas de message du tout alors qu'il devrait apparaitre à la vue des valeurs testées.

j'avoue ne pas comprendre ce qui "cloche", alors si vous pouviez m'aiguiller un peu.
Merci

3 réponses

Bonjour mGomez.

Vous n'êtes pas dans la bonne section de ce forum, car vous programmez en vb.net, et non pas en vb6.

Désolé.


Étant illettré, je signe d'une croix : ×
0
Utilisateur anonyme
22 févr. 2013 à 12:55
Bonjour,

La comparaison par défaut est de type string apparemment (un 5 est considéré plus grand qu'un 1). Value est surement de type Object (pas testé).
Je pense que tu devrais forcer un type pour la comparaison. Voir TryCast, CType sur l'aide msdn.
0
Utilisateur anonyme
22 févr. 2013 à 12:56
Ou bien Double.Parse, Integer.Parse etc...
0
Rejoignez-nous