Je veux changer le contenu des certaine cellule de mon datagridview.
J'utilise ce code mais ca me sort toujours un erreur
Do Until i = Dtt.Rows.Count
If dtgPaiements.Rows(4).Cells(i).Value "" Then dtgPaiements.Rows(4).Cells(i).Value " "
If dtgPaiements.Rows(4).Cells(i).Value "O" Then dtgPaiements.Rows(4).Cells(i).Value "MasterCard"
If dtgPaiements.Rows(4).Cells(i).Value "X" Then dtgPaiements.Rows(4).Cells(i).Value "American Express"
i = i + 1
Loop
À ma premiere condition ca me donne cette erreur:
L'opérateur '=' n'est pas défini pour type 'DBNull' et chaîne "".
Comment faire pour régler ce problème de valeur null quand en plus je sais que la valeur n'Est pas null...
merci de votre aide
A voir également:
L'index était hors limites. il ne doit pas être négatif et doit être inférieur à la taille de la collection.
L'index était hors limites. il ne doit pas être négatif - Meilleures réponses
L'index était hors limites. il ne doit pas être négatif et doit être inférieur à la taille de la collection. nom du paramètre : - Meilleures réponses
Salut, la propriété Value te renvoi un objet, convertie la en ToString() et tu pourra comparer
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Je pensais à cela, essai également à l'aide de la classe : System.DBNull
Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Effectivement la méthode IsDBNull(TonChamp) semble fonctionner.
Je croyais "avoir tout réglé" mais non j'arrive à l'autre condition et hop... encore une erreur :(
Lorsque j'arrive a cette condition ca dit:
If dtgPaiements.Rows(4).Cells(i).Value "O" Then dtgPaiements.Rows(4).Cells(i).Value "MasterCard"
La conversion de la chaîne "O" en type 'Double' n'est pas valide.
Dans mon fichier Acces la valeur "O" est une lettre et c'est une colonne de type texte.
J'ai bien vérifier et c'est dans la colonne 4 (0, 1,2,3,4, la colonne 4).
Rebonjour
Bon et bien je ne sais pas tout j'essais des truc et je n'y arrive pas,..
Je ne saisi pas comment faire afin que ma seconde confition soit pris en compte je ne sais pas comment le coder pour régler l'erreur..
Je vous montre mon code qui est loin d'être OK...
Si vous pouvez me donner un exmeple car je m'y perds un peu trop :(
PCPT: Comment régler le bug avec le Else car ma deuxième conditon de "bugé" à cause de cela ?
merci de votre aide c'est très apprécié
Do Until i = Dtt.Rows.Count
If IsDBNull(dtgPaiements.Rows(4).Cells(i).Value) Then 'Ne fait rien
ElseIf dtgPaiements.Rows(4).Cells(i).Value = "O" Then
dtgPaiements.Rows(4).Cells(i).Value = "MasterCard"
ElseIf dtgPaiements.Rows(4).Cells(i).Value = "X" Then
dtgPaiements.Rows(4).Cells(i).Value = "American Express"
End If
i = i + 1
Loop
Do Until i = Dtt.Rows.Count
With dtgPaiements.Rows(4).Cells(i)
If IsDBNull(.Value) Then
.Value = " "
Else
Dim sValue As String = .Value.ToString
If sValue = "O" Then
.Value = "MasterCard"
ElseIf sValue = "X" Then
.Value = "American Express"
End If
End If
i = i + 1
End With
Loop
J'ai cette erreur:
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index
Le bug est que Dtt.Rows.Count vaut 14
Donc à mes yeux cela ne devrait pas créer un erreur ???
... autre bizarrerie
count sur Dtt, action sur dtgPaiements
mais "hors limite" est de toute façon un autre problème sans rapport à dbnull, tu sauras trouver sans mal selon le reste de ton projet que nous ne connaissons pas (nombre et nom des grids, nom défini par paramètres de procédure ou vrai nom des contrôles, etc)