Cast du type 'DataRowview' en type 'Date'

Résolu
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 - 14 juin 2006 à 00:56
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 14 juin 2006 à 17:49
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

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 16:45
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
3
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 11:23
Tu dévellopes en vb6? Parce que j'ai essayé avec VS 2003 et VS 2005 et j'ai pas de soucis!!
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 14:36
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.
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 14:45
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?
0

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

Posez votre question
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 14:55
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 ?
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 15:08
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.
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 15:10
Ok, alors essaie ça :

x =CDate( listbox1.Items(i).value)
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 15:17
ç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
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 15:24
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.
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 15:42
comment dois je faire pour placer un espion sur listbox1.item(i)  ?
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 15:45
Une fois le point d'arrêt atteint par le debogueur, tu sélectionne listbox1.item(i), click droit puis Ajouter un espion
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 15:53
Essaye : 
 
listbox1.item(i).Row(index de la colonne contenant la date)

ou listbox1.item(i).Row(nom de la colonne contenant la date)
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 16:06
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
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 16:15
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??
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 16:38
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.
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
14 juin 2006 à 17:27
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.
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
14 juin 2006 à 17:49
Bah si je peux t'aider....
0
Rejoignez-nous