Problème de valeur retournée DBNull

indet2 Messages postés 12 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 août 2005 - 19 juil. 2005 à 16:42
indet2 Messages postés 12 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 août 2005 - 22 juil. 2005 à 18:47
voila mon problème :
Je récupère, à l'aide d'un dataReader, toutes les valeurs d'une ligne d'une table et les affiche dans des labels. Le problème survient lorsque ces valeurs n'ont pas été définie au préalable et sont donc Null.

Lorsque je fais : lblAffichage.Text = objDR.GetString(5)
un message d'erreur m'indique une incompatibilité de type.(string et DBNull)

Alors j'ai essayé de cette façon :

If Not (IsDBNull(objDR.GetString(5))) Then
lblAffichage.Text = objDR.GetString(5)
End If

et voila le nouveau message d'erreur :
" Une exception non gérée du type 'System.InvalidCastException' s'est produite dans system.data.dll
Informations supplémentaires : Le cast spécifié n'est pas valide."

Voila je bloque dessus depuis un moment, donc si vous avez une solution ça serai pas mal.
Merci

4 réponses

cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
19 juil. 2005 à 17:05
Salut,

Essai ça...



If Not (IsDBNull(objDR)) Then

lblAffichage.Text = objDR.GetString(5)

End If



Si tu appelles la méthode GetString dans le If et que c'est elle qui plante, ça va pas marcher....



Chris
0
indet2 Messages postés 12 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 août 2005
20 juil. 2005 à 09:20
merci pour ton aide. mais j'ai essayé et ça ne fonctionne pas.

toujours le même message :
" Une exception non gérée du type 'System.InvalidCastException' s'est produite dans system.data.dll
Informations supplémentaires : Le cast spécifié n'est pas valide."

d'ailleur je ne comprend pas "IsDBNull(objDR)", parce que de cette façon on ne test pas si l'attribu désiré (d'index 5) est nul ou pas. je ne vois d'ailleur pas ce qu'on test. donc on entre dans la condition et ça plante sur "lblAffichage.Text = objDR.GetString(5)"

Si ya d'autre solution j'accepte tous. merci
0
cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
20 juil. 2005 à 10:31
OK.

Maintenant, j'ai vu c'est du VB.NET. Je venais de la faire dans une macro

Ca donne plutôt ça alors:



If Not (objDR.IsDBNull(5)) Then

lblAffichage.Text = objDR.GetString(5)

End If



ou



If Not (objDR(5) is DBNull.Value) Then


lblAffichage.Text = objDR.GetString(5)


End If

Voilà, ça doit être mieu maintenant.



Chris
0
indet2 Messages postés 12 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 3 août 2005
22 juil. 2005 à 18:47
merci bien, ça fonctionne.
je peut continuer à avancer dans mon prog
0