IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] DateTime et object


Sujet :

ASP.NET

  1. #1
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut [C#] DateTime et object
    Dans ma base de données sql server j'ai une table "client" avec une colonne "fincontrat" qui est de type date.

    Pour récupérer cette donnée je fais ma requete sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select fincontrat from client
    J'utilise un Reader pour lire le résultat. Pour l'instant aucun soucis.
    Ensuite, je veux comparer ma date "fincontrat" avec la date du jour pour faire un traitement approprié.

    Le problème est que je n'arrive pas à faire cette comparaison. Je veux faire quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Reader["fincontrat"]<DateTime.Now)
    {}
    else 
    {}
    Le probleme est que d'un coté j'ai un type "object" et de l'autre un type "datetime", donc comment faire pour faire cette comparaison?

    Merci.

  2. #2
    Membre régulier Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 110
    Points
    110
    Par défaut
    Salut

    essayer dr.GetDateTime(0)


    Bon courage

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 25
    Points
    25
    Par défaut Re: [C#] DateTime et object
    Citation Envoyé par liliprog
    ...

    Le problème est que je n'arrive pas à faire cette comparaison. Je veux faire quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Reader["fincontrat"]<DateTime.Now)
    {}
    else 
    {}
    Le probleme est que d'un coté j'ai un type "object" et de l'autre un type "datetime", donc comment faire pour faire cette comparaison?

    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (((DateTime) Reader["fincontrat"]) < DateTime.Now) { ... }
    Ça dans le cas où tu n'es pas sûr de l'ordre dans lequel tes colonnes sont renvoyées dans le jeu de résultats.
    Dans le cas présent, la solution de layouni me paraît mieux, même si tu sais pas trop ce que t'es en train de récupérer (0 c'est pas très explicite), après c'est une question de goût et de maniaquerie.

  4. #4
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup pour vos réponses, c'est parfait!!

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    Salut,

    globalement, j'ajouterai des tests :

    DateTime MyDt = Convert.ToDateTime(Reader["fincontrat"].ToString());
    if (MyDt != null)
    {
    if(MyDt<DateTime.Now){//traitement}else{//autre traitement}
    }
    else
    {
    //traitement si requete renvoie rien
    }

  6. #6
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par mbu_
    DateTime MyDt = Convert.ToDateTime(Reader["fincontrat"].ToString());
    if (MyDt != null)
    j'aimerais bien faire ce test mais ta comparaison entre MyDt et null ne peut pas se faire, ce n'est pas le meme type--> d'un coté tu as un datetime de l'autre <null>

    Je sais pas si il y a une astuce pour faire ce test!!

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    if (MyDt != null)
    -> Erreur à la compil ??
    je peux pas tester pour confirmer/infirmer, peux tu tester stp ?

    Steph

  8. #8
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    en fait oui il y avait une erreur de compil, dans la base quand la valeur est à "null" en fait il faut pas faire le test avec "null" mais ""
    voici le code ça sera plsu clair:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(Rd["fincontrat"].ToString()!="")
    {
    DateTime dateBase=Convert.ToDateTime(Rd["fincontrat"]);	
    if(dateBase<=DateTime.Now)
    {}
    else
    {}
    }
    else{};
    Voilà bon courage à tous pour la suite

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    Allez, encore un peu plus joli alors :
    if(Rd["fincontrat"].ToString()!=string.Empty)

    ;-)

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par mbu_
    Allez, encore un peu plus joli alors :
    if(Rd["fincontrat"].ToString()!=string.Empty)

    ;-)
    C'est pas mieux de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DateTime fincontrat = Rd["fincontrat"] as DateTime;
    if(fincontrat  <= DateTime.Now)
    ça évite le test du string.Empty, il me semble, mais j'en mettrai aps ma main à couper.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/06/2014, 16h59
  2. Réponses: 2
    Dernier message: 22/09/2011, 08h58
  3. Réponses: 2
    Dernier message: 20/01/2011, 22h56
  4. Recuperer la date sans l'heur dans un champ datetime
    Par bob33 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/06/2010, 12h59
  5. DataTable et DateTime object
    Par Mast3rMind dans le forum C#
    Réponses: 5
    Dernier message: 31/03/2008, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo