2009-11-02 6 views
0

En utilisant VB.NETPeupler la valeur datetimepicker de la base de données

Je veux afficher la date dans DateTimePicker de la base de données.

Code.

cmd= new sqlcommand("select date from table1", con) 
dr = cmd.executereader 
while dr.read() 
datetimepicker1.value.add(dr("Date")) 
end while 
dr.close 

Mais l'erreur montre que la fonte spécifiée est valide

Comment obtenir une valeur?

Besoin code vb.net Aide

Répondre

1

DateTime.Add ne fait pas ce que vous pensez qu'il fait. Il ajoute un TimeSpan (pas une date) à une date existante. Dans votre cas, vous avez une date, pas une durée, et vous voulez la définir sur un datimepicker, sans y ajouter une période de temps.

Vous devez le faire à la place:

datetimepicker1.Value = dr("Date") 

Si dr ("date") est de type objet, vous devez convertir explicitement un objet Date comme ceci:

datetimepicker1.Value = CDate(dr("Date")) 
1

Vous pouvez lancer la valeur DateTime, le problème est que le Dr (« date ») est une chaîne et dans votre code de votre faire une valeur de chaîne égale à un DateTime et c'est l'erreur que tu vois. Essayez de mettre

datetimepicker1.value.add (DirectCast (dr ("Date"), DateTime))

Cela devrait jeter la valeur de chaîne à une valeur DateTime. Une chose que vous pourriez vouloir ajouter à votre code est une vérification pour s'assurer que la valeur de dr ("Date") est réellement une date et non un autre type de valeur.

Espérons que cela aide!

+0

Une autre façon d'obtenir la valeur de la date serait d'utiliser datetimepicker1.value = DirectCast (dr ("Date"), DateTime)) – ajrawson

+2

Erm - ce n'est pas tout à fait dr dr ("Date") n'est pas une chaîne, n'est-ce pas? Il peut s'agir par défaut d'une chaîne mais c'est une valeur d'objet si elle n'est pas explicitement typée. – Murph

+0

Murph vous avez raison, c'est un objet. Mon mauvais, tirait de la mémoire sur celui-là, merci de me corriger. – ajrawson

Questions connexes