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

C# Discussion :

Problème avec le DateTime


Sujet :

C#

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut Problème avec le DateTime
    Bonjour,

    J'ai un problème avec les DateTime qui me laisse assez perplexe ...

    J'ai un formulaire (Dans une Appli ASP.NET C#) ou j'ai plusieurs champs date, plusieurs de ces champs ne sont pas obligatoire et peuvent donc être null, sauf que DateTime n'est pas nullable pas défaut, on m'a conseillé alors d'utiliser la valeur par défaut de DateTime, jusqu'ici tout va bien. Mais à ma grande surprise la valeur par défaut de DateTime en C# n'est à priori pas compatible avec SqlDateTime, ce qui me rend comme erreur lors de l'exécution :

    SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM
    Et la valeur par défaut de DateTime en C# est 01/01/0001 00:00:00.



    Quelqu'un pour m'éclairer ? Ou me dire comment contourner ce problème ?

    Suis-je obligé d'utiliser les types nullable ?
    Merci de me laisser toutes informations qui m'aidera à comprendre ou à résoudre cette erreur.

    Merci d'avance.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Si ta colonne de base est nullable, autant profiter des DateTime?, qui sont justement faits notamment pour faciliter l'interaction avec la base.

    Sinon, au moment ou t'écris dans la base, tu remplaces MinValue par Null et zou

    Et fondamentalement, DateTime n'a aucun lien particulier avec les bases de données, c'est normal qu'il n'ait pas les limitations que peuvent avoir les représentations de base des dates.
    ಠ_ಠ

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Si ta colonne de base est nullable, autant profiter des DateTime?, qui sont justement faits notamment pour faciliter l'interaction avec la base.

    Sinon, au moment ou t'écris dans la base, tu remplaces MinValue par Null et zou

    Et fondamentalement, DateTime n'a aucun lien particulier avec les bases de données, c'est normal qu'il n'ait pas les limitations que peuvent avoir les représentations de base des dates.
    Merci bcp pour ta réponse.
    Je vais utiliser nullable je pense, mais je ne saisie pas un truc, est ce que DateTime? est compatible avec DateTime (et l'inverse ?). Dois-je redéfinir tous mes DateTime en DateTime?

    Merci encore.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  4. #4
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Je te laisse te renseigner tout seul sur les Nullable en C#, parce que ta question est vaste
    ಠ_ಠ

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Je te laisse te renseigner tout seul sur les Nullable en C#, parce que ta question est vaste
    Si tu le dis ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //marche sauf si b est null et la on a exception
    int? b = 1;
    int a = b;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //ça marche toujours
    int b = 2;
    int? a = b;
    Merci quand même.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Y a t il une personne, qui peut m'expliquer comment pour le cas des DateTime par exemple, on utilise les méthodes parse ou autre (quand on utilise des DateTime?) ...

    Typiquement quand on un formulaire on fait souvent des :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime.Parse(MytextboxDate.Text);
    Ou encore des méthodes comme ToShortDateString() ?

    Merci d'avance.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  7. #7
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Avec des DateTime, il vaut beaucoup mieux utiliser un dateTimePicker ou un MaskedTextBox a la rigueur, parce que c'est fait pour ca.
    ಠ_ಠ

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Avec des DateTime, il vaut beaucoup mieux utiliser un dateTimePicker ou un MaskedTextBox a la rigueur, parce que c'est fait pour ca.
    dateTimePicker c'est Desktop pas Web non ?

    Ceci était un exemple, pour Parse comment faut il faire ?
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  9. #9
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    pour Parse comment faut il faire ?
    Il suffit de regarder la MSDN :
    http://msdn2.microsoft.com/fr-fr/lib...se(VS.80).aspx

    Au passage, la méthode TryParse évite la levée d'exception, c'est pratique : http://msdn2.microsoft.com/fr-fr/lib...se(VS.80).aspx

    Et n'oublie pas non plus ton ami
    Pas de questions techniques par MP

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Ou encore des méthodes comme ToShortDateString() ?
    Avec un DateTime? tu n'aura qu'à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt.Value.ToShortDateString();
    où dt est ton DateTime?.
    Il faudra bien sûr s'assurer que dt.Value n'est pas null.

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par binoo Voir le message
    Avec un DateTime? tu n'aura qu'à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt.Value.ToShortDateString();
    où dt est ton DateTime?.
    Il faudra bien sûr s'assurer que dt.Value n'est pas null.
    merci bcp, c'est l'info qui me fallais.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

Discussions similaires

  1. [2.x] problème avec type datetime comme identifiant
    Par reziky dans le forum Symfony
    Réponses: 2
    Dernier message: 25/11/2013, 20h17
  2. problème avec la DateTime Taglib
    Par opeo dans le forum Taglibs
    Réponses: 2
    Dernier message: 15/11/2008, 15h21
  3. problème avec wx.DateTime
    Par Zavonen dans le forum wxPython
    Réponses: 2
    Dernier message: 17/09/2007, 12h35
  4. Problème avec convert datetime
    Par sane79 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/07/2007, 10h43
  5. problême avec datetime
    Par Xanime dans le forum Services Web
    Réponses: 1
    Dernier message: 13/06/2007, 16h24

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