Transformer un champ d'un objet sqlReader en DateTime

fabian86 Messages postés 31 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 5 mai 2012 - 11 mai 2008 à 10:56
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 13 mai 2008 à 08:14
bonjour,

J'ai besoin d'une âme charitable qui pourrait m'aider. Je réalise une application windows connecté à une DB. J'ai une table patient qui a 5 champs (id"int auto-incrémenté", nom, prénom, téléphone 'string' et date de naissance 'DateTime')

J'ai une classe Patient qui a un constructeur avec ces 5 paramètres.
J'ai écrit ce code:

List retVal = new List(); //crée une liste pour y mettre les lignes correspondant à ma requête

try
            {
                con.Open();
                SqlDataReader reader = com.ExecuteReader();
                while (reader.Read()) //boucle le reader tant qu'il contient quelque chose
                {
                    //crée un objet patient
                    Patient c = new Patient(convert.toInt32(reader[0]),       
                                          reader[1].ToString(),
                                          reader[2].ToString()
                                          reader[3].ToString()
                                           reader[4].....?);  //Je ne sais pas quoi mettre pour avoir cette ligne en type DateTime
                    retVal.Add(c);  //ajoute ce patient à la liste
                }
            }

merci de votre aide

3 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
11 mai 2008 à 22:49
Salut,

Convert.ToDateTime / cast / etc (en partant bien entendu du fait que le type en base de données soit bien mappé sur du DateTime en .NET)
En testant avant que la valeur ne soit pas NULL, bien entendu.

/*
coq
MVP Visual C#
CoqBlog
*/
0
fabian86 Messages postés 31 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 5 mai 2012
12 mai 2008 à 20:13
Merci de ton aide mais j'ai encore une petite question.

Comment je peux faire que pour garder seulement la date et pas l'heure.

Merci
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
13 mai 2008 à 08:14
Hello,

Si ton champs est bien de type DateTime dans ta base de donnée, le plus simple pour récupérer un DateTime est d'utiliser la méthode GetDateTime.

Datetime dt = reader.GetDateTime(4);

Si tu ne veux que la Date, tu fais dt.Date.
Si c'est pour l'affichage, tu peux aussi utiliser un format, que ce soit dans un tableau ou avec un ToString, "dd / MM / yyyy", par exemple.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
0
Rejoignez-nous