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

Windows Forms Discussion :

insertion d'un datetime nul


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut insertion d'un datetime nul
    bonjours
    SVP, dans ma table sql, j'ai une variable nommée date_réalisation de type datetime.
    comment faire dans mon code c sharp pour que date_Réalisation puisse avoir la valeur nulle càd que la cellule dédiée à la date_Réalisation reste vide quand je la remplis pas.
    plzzzzzz help

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Quand tu dis que dans ta table tu as une variable nommée date_réalisation de type datetime, tu veux dire que ta table contient une colonne de type DateTime?
    Si oui, dans les propriétés de ta table, tu peux déterminer si elle accepte ou non les champs null. Et ainsi tu ne devrais plus avoir de problème à ce sujet.

    BinKentsu

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    oui c'est ça
    mais la colonne de type datetime n'accepte pas des valeurs "null"
    déjà je peux pas laisser mon champ datetimepicker vide !!!
    j'espère que j'ai bien expliqué mon problème !!
    donc une idée ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Comme l'a dit BinKentsu, c'est surement le champ date de ta table SQL qui n'accepte pas les valeurs nulles.
    A voir si tu peux modifier les propriétés de ta table, ou alors initialiser ton champ champ date avec la date courante.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Tu utilises quel logiciel pour la base de données?
    Parce que sous SQL Server le null est autorisé pour les champs de type DateTime
    http://hpics.li/686d107
    De même pour Access
    http://hpics.li/a1ea02c

  6. #6
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    bonjour les gars
    apparement, je ne suis pas parvenue à bien expliquer mon problème.
    en effet dans ma table sql, mon champ date_réalisation accepte le null, pas de problème là
    mais mon problème réside dans mon interface c#, ou date_réalisation est dans un datetimepicker. Ma question est comment faire pour laisser mon datetimepicker vide cad qu'il ne prend aucune date ?

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Salut,

    je penses que le plus simple serait de filtrer le resultat de ta requete qui te renvois les dates et de retirer toutes celles qui sont vides.

    mesRow.Where(f=> f.MonChampDate != null).ToList()

    Bye,

  8. #8
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    bonjour morgan2b et merci
    mais c'est pas de ça que je parlais :p
    en effet je veux que mon datetimepicker reste vide quand je ne le remplis pas et prends une date que je choisis une.
    mais dans l'interface, je ne peux pas laisser mon datetimepicker vide, mais si je ne choisis aucune date, il prends par défaut la date du jour actuelle :/

  9. #9
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Okok, désolé je n'avais pas bien compris ton pb.

    Tout d'abord comme dans un dtp tu affectes un DateTime il ne peut pas etre null.

    Mais tu peux utiliser ce workaround, en changeant simplement le format de la date par un champs vide et au moment ou tu le rempli tu rechanges par un format lisible.


    Par defaut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    endDateDateTimePicker.Format = DateTimePickerFormat.Custom;
    endDateDateTimePicker.CustomFormat = " ";
    Une fois que tu as une valeur selectionnée ( une un des evenements):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mydtp.ValueChanged += maFonction;
     
    void maFonction(sender e, EventArgs event)
    {
    // On rechange par un format lisible
    endDateDateTimePicker.Format = DateTimePickerFormat.Short;
    }
    Voila je ne vois pas trop comment faire a part comme ca

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Ah xD Désolé en fait je voyais pas ton problème.
    Comme l'a dit morgan2b, si tu veux que ton datetimepicker soit vide si tu n'as aucune date, il faut que tu modifies la propriété format de ton datetimepicker en custom et que tu mettes dans la propriété CustomFormat ce que tu veux qu'il soit affiché en échange de la date, par exemple un simple espace pour afficher un blanc dans le composant.
    Et si jamais tu as une date que tu souhaites afficher, il faut remodifier la propriété Format en Long (valeur par défaut).

  11. #11
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    salut
    merci pour vos réponses mais à ce que j'ai compris il faut à chaque fois que je veux laisser mon datetimepicker vide changer son format et à chaque fois que je veux choisir une date rechanger le format et tout se fait! "manuellement"!
    je trouve que c'est pas pratique surtout que l'interface que je compte crée est destinée pour être utilisée par des "utilisateurs".
    donc SVP est ce que vous avez une autre solution ?

  12. #12
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Pour tes utilisateurs ce sera transparent, par contre il est vrai que c'est pas pratique mais la tu es confronté aux limites du framework et tu ne pourras rien y faire.

    D'apres ce que tu as decrit ca n'a pas l'air si compliqué que ca, il n'y a qu'au premier passage quand aucune date n'est selectionée que tu dois effectuer cette manipulation c'est a dire la premiere fois que l'utilisateur arrive sur le DatetimePicker apres tu peux laisser afficher la date selectionnée.

  13. #13
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    donc puisque tu ne vois pas autre solution, est ce qu'on peut revenir sur la première solution?
    pour être honnête, j'ai pas vraiment bien compris la démarche ://
    où dois-je mettre ce petit bout de code?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    endDateDateTimePicker.Format = DateTimePickerFormat.Custom;
    endDateDateTimePicker.CustomFormat = " ";
    l'erreur suivante s'affiche:The name 'endDateDateTimePicker' does not exist in the current context
    et puis où écrire l'autre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mydtp.ValueChanged += maFonction;
     
    void maFonction(sender e, EventArgs event)
    {
    // On rechange par un format lisible
    endDateDateTimePicker.Format = DateTimePickerFormat.Short;
    }
    j'espère que tu as le souffle pour m'expliquer car je début en programmation :/

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    Juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Tu places ce code lorsque tu fais ta requête, quand tu lis ta réponse, tu vérifies que la date renvoyée est null ou pas.
    Si elle est null, tu affiches ça lorsque tu n'as pas de dates spécifiques à afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (date == null) or (date == "") // date correspond à la réponse de ta requête
    {
      endDateDateTimePicker.Format = DateTimePickerFormat.Custom;
      endDateDateTimePicker.CustomFormat = " ";
    }
    En revanche si elle est pas null tu remets à l'état initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else
      endDateDateTimePicker.Format = DateTimePickerFormat.Short;
    PS : endDateDateTimePicker correspond au nom de ton DateTimePicker, ton composant ne porte surement pas ce nom si tu as cette erreur.

    BinKentsu

Discussions similaires

  1. [MySQL] Problème d'insert avec un champ de type DateTime
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/05/2009, 03h45
  2. Datetime + Mysql problème sur insertion
    Par hirochirak dans le forum ASP.NET
    Réponses: 12
    Dernier message: 08/12/2008, 17h34
  3. insert into et datetime
    Par eracius dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 11/10/2007, 14h17
  4. Probleme insertion date avec un champ datetime
    Par locs dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 24/09/2006, 12h19
  5. Réponses: 10
    Dernier message: 21/04/2006, 18h23

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