Cast du type 'DataRowview' en type 'Date' [Résolu]

Signaler
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006
-
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
-
j'ai une listbox1 qui affiche des données de type (des dates). dans une autre listbox2 je veux afficher les même dates dans litbox1 mais à chaqu'une des dates je vais ajouter 9 mois. pour cela j'ai le code suivant:










Dim
i, j

As




Integer









Dim
x, y, 

As




Date









For
i = 0

To



listbox1.Items.Count - 1

x =CDate( listbox1.Items(i))



y =





x.AddMonths(9)

listbox2.Items.Add(y)








Next
i





Le problème c'est que quand j'exécute j'ai le message : cast du type 'DataRowview' en type 'Date' non valide.
Pouvez  vous m'aider ?
                                                
                                                          merci d'avance

17 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
For



i = 0

To
ListBox1.Items.Count - 1x =


CDate
(ListBox1.Items(i).Row("date"))y = x.AddMonths(9)

ListBox2.Items.Add(y)


Next
i

en remplaçant "date" par le nom de la colonne contenant la date.. Chez moi ça marche nickel
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Tu dévellopes en vb6? Parce que j'ai essayé avec VS 2003 et VS 2005 et j'ai pas de soucis!!
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

je développe en VS 2003. j'ai toujours le même message qui s'affiche.
je te remercie d'avance si tu m'aide à résoudre ce problème.
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
J'ai fait un copier/coller de ton code dans le load du formulaire et je n'ai pas ce problème...

En plus ListBox1.Items(i) renvoie une valeur de type Object, pas DataRowView! C'est bien une ListBox que tu utilises?

Que contiennent les items de ta listbox?
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

oui c'est bien une listebox que j'utilise.
et listbox1 affiche les données d'un champ nommé 'date_IF' dand ma BD access.
j'ai toujours le même message qui s'affiche.


vraiment je ne sais c'est dû à quoi ?


à ton avis ?
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

voilà le message complet :

une exception non gérée du type 'system.invalidCastException' s'est produite dans microsoft.visualbasic.dll
imformations supplémentaires :cast du type 'DataRowview' en type 'Date' non valide.
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Ok, alors essaie ça :

x =CDate( listbox1.Items(i).value)
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

ça marche pas toujours. ya le message suivant:

une exception non gérée du type 'system.Missing<memberException' s'est produite dans microsoft.visualbasic.dll
imformations supplémentaires : Le membre public 'value' du type 'DataRowView' est introuvable
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Met un point d'arrêt dans ta boucle for sur cette même ligne et place un espion sur listbox1.item(i).

Regarde ensuite dans quelle propriété tu trouves la valeur de la date et ajoute la à la place de value.
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

comment dois je faire pour placer un espion sur listbox1.item(i)  ?
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Une fois le point d'arrêt atteint par le debogueur, tu sélectionne listbox1.item(i), click droit puis Ajouter un espion
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Essaye : 
 
listbox1.item(i).Row(index de la colonne contenant la date)

ou listbox1.item(i).Row(nom de la colonne contenant la date)
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

encore une fois pas de résultat.
mais je comprend pas le fait que ça marche avec toi quant t'as fait un copier coller, alors que ce n'est pas le cas pour moi.
je comprends pas
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Dans ton cas, la source de ta listbox est un dataview alors que moi j'ai ajouté des "items" en dur dans ma listbox. Donc logiquement, dans mon cas, le prog convertit une string en date. Dans ton cas, c'est l'objet DataRowView qu'il tente de convertir. C'est pour ça que ça plante.

Comment as-tu crées la source de ta listbox??
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

j'ai crée un OleDbDataAdapter nommé 'daVelage' en le glissant dans ma form et qui contient une requête parametrée.

Après j'ai crée un groupe de données nommées 'dsVelage' .
donc dand la fenetre 'Propriètés', dans le datasource de mon listbox1  j'ai mis 'dsVelage' et dans le DisplayMember j'ai mis la table se trouvant dans le 'dsVelage'.

j'ai aussi un bouton qui affiche une colonne (données de type date) de la table dans le listbox1 dont le code est le suivant :
daVelage.SelectCommand.Parameters("nom_exploitant").Value = combobox1.Text

daVelage.SelectCommand.Parameters("prenom_exploitant").Value = combobox2.Text

daVelage.SelectCommand.Parameters("code_exploitant").Value = combobox3.Text

Dsvelage.exploitant.Clear()

daVelage.Fill(Dsvelage)

et comme j'ai dit avant dans une autre listbox2 je veux afficher les même dates dans litbox1 mais à chaqu'une des dates je vais ajouter 9 mois. listbox2 n'est pas lié à aucune source de données.
Messages postés
73
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
7 août 2006

ouuuuuuuuf  ça m'as rendu un fou
enfin ça marche.
je te remercie infiniment Mr.drahcir pour ton aide. c'est très gentil de ta part.
donc on se verra avec un autre problème.
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Bah si je peux t'aider....