Probleme de cast

nerazzurro01 Messages postés 41 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 14 janvier 2008 - 3 mai 2007 à 13:04
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 3 mai 2007 à 20:35
bnjr j'ai un probleme de cast voila le code

Trycnx.Open()

cmd =

New OdbcCommand(
"select * from véhicule", cnx)rd = cmd.ExecuteReader

While rd.Read

Dim km = rd.GetInt32(5)

If km > 1000
ThenMsgBox(

"la voiture" & rd.GetString(2) &
"doit ")

End
If

End
Whilecnx.Close()

Catch ex
As ExceptionMsgBox(ex.Message)

cnx.Close()

End
Try

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 mai 2007 à 13:25
C'est bien joli de nous signaler un problème de cast, sur quelle ligne exactement et quel est le messgae d'erreur precisément

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 mai 2007 à 13:47
le chiffre, dans rd.GetInt32(5)
ou dans rd.GetString(2)
ca n'est pas l'indice du champ j'espère !!!

RIEN ne te garantie l'ordre d'arrivée des champs dans ton Reader.... mets le nom du champ, ca vaudra mieux.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
3 mai 2007 à 14:46
Si si rd.GetInt32(5)/rd.GetString(2) c'est bien les indices des champs. Personnellement j'ai toujours utilisé les indices des champs au lieu de leur nom avec la sélection *, "en principe" l'ordre d'arrivée se fait par ordre alphabétique.

L'erreur de cast se passe probablement là malgrès tout. Es-tu sur que le champ 5 est bien de type entier et que le 2 est bien de type string ?
0
nerazzurro01 Messages postés 41 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 14 janvier 2008
3 mai 2007 à 16:17
effectivement les rd.GetInt32(5)/rd.GetString(2) se sont les indices des champs j'ai tjr de travailler avec et pour le message d'erreur le voila: le cast specifie n'est pas valide
et je crois que le probleme et dans la ligne ou il ya le if


 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 mai 2007 à 17:50
Mauvaise déclaration ?????

Alors peut-etre peux-tu essayer ceci : Remplace la déclaration de km par celle-ci :

Dim km as Integer = rd.GetInt32(5)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
nerazzurro01 Messages postés 41 Date d'inscription jeudi 12 avril 2007 Statut Membre Dernière intervention 14 janvier 2008
3 mai 2007 à 17:57
ca marche pas
 j'arrive pas a comprendre ca
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 mai 2007 à 20:35
et si tu affiches (msgbox) la valeur de ce champ, pour tester...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous