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 :

Recupération d'une valeur DatePicker


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut Recupération d'une valeur DatePicker
    Salut à tous, je vous sollicite afin de savoir comment récuperer la valeur d'une DatePicker pour une insertion en bdd.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    MySqlCommand cmd = new MySqlCommand(query, DataBaseManager.connection);
     
                    MySqlParameter pIdPatient = cmd.Parameters.Add("@IdPatient", MySqlDbType.Int64);
                    MySqlParameter pIdServiceR = cmd.Parameters.Add("@IdServiceR", MySqlDbType.Int64);
                   // MySqlParameter pDateTransport = cmd.Parameters.Add("@DateTransport", MySqlDbType.Date);
     
                    pIdPatient.Value = txtIdPatient.Text;
                    pIdServiceR.Value = txtIdServiceR.Text;
                   // pDateTransport = Convert.ToDateTime(txtDateTransport.Text);
    Ce qui ne marche pas est en commentaire. Quelqu'un aurait-il une idée ? Merci

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    pourquoi ne pas récupérer la date directement au format DateTime grâce à l'attribut SelectedDate de ton DatePicker ?
    Si tu fais cette modif est-ce que ça plante toujours ? Si oui, en passant le MySqlDbType à DateTime ?

  3. #3
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Tu dois passer le type MySqlDbType à DateTime

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut
    jai bien mis en dateTime mais ça ne compile pas cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     MySqlParameter pDateTransport = cmd.Parameters.Add("@DateTransport", MySqlDbType.DateTime);
    pDateTransport = txtDateTransport.SelectedDate;
    ça me dis " impossible de convertir le type dateTime en mysql ..
    Merci =)

  5. #5
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Re,

    quelle est l'erreur, très précisément, et à quel moment intervient-elle ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut
    Bon je t'avoue j'ai changer de technique lol voic ma nouvelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int IdPatient;
                int IdServiceR;
                DateTime DateTransport = Convert.ToDateTime(txtDateTransport.SelectedDate.Value);
     
                Int32.TryParse(txtIdServiceR.Text, out IdServiceR);
                Int32.TryParse(txtIdPatient.Text, out IdPatient);
     
                String query = ("INSERT INTO demande (IdPatient,IdServiceR,Priorite,Contexte) VALUES ('"+IdPatient+"','"+IdServiceR+ "','" + priorite + "','" + contexte + "');");
                Console.WriteLine(query);
                var reader = dbm.executerRequete(query);
                Console.WriteLine(reader);
    seul hic, dans ma requete la date s'affiche correctement mais elle s'incere pas dans ma bdd :'( ..

    J'aurais egalement une autre question pour les valeurs de checkbox apres si tu as le temps, mais c'est sympa de ta part car c'est un gros projet avec un gros coeff ..
    merci

  7. #7
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Si c'est un projet noté à gros coeff je te conseille d'essayer de corriger ta version précédente.
    La création d'un requête avec une concaténation risque de ne pas plaire : très peu résistante aux erreurs, et injection SQL possibles.

    Pour ta date dans la version "concat" c'est certainement que le format textuel que tu lui passes n'est pas valide pour MySQL.

    Pour les booléens il me semble que ce type de base n'existe pas dans MySQL.
    Tu peux faire un SMALLINT avec des 0/1 ou un CHAR(1) avec des 'O'/'N' (ou 'Y'/'N' en version anglaise).

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut
    Notre intervenant nous as dis de choisir la methode; mais je trouve la concat plus simple .. je voulais essayer deja avec la concat.

    Justement j'ai tout essayer dans le mysql .. je vois pas :/
    Date ou DateTime ?

    Ca non plus ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime DateTransport = txtDateTransport.SelectedDate.Value;

  9. #9
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Tu pourrais me faire voir le SQL CREATE de ta table ?

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut
    C'est bon j'ai résolu le problème merci à tous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                String query = ("INSERT INTO demande (IdPatient,IdServiceR,Priorite,DateTransport) VALUES ('" + IdPatient + "','" + IdServiceR + "','" + priorite + "','" + DateTransport.ToString("yyyy-MM-dd") + "');");
    je voulais te demander, il est possible de récuperer plusieurs valeurs d'une checkbox et y inserer dans la même champs ou alors faut-il faire un champs par valeur de checkbox ..
    Le problème c'est que c'est pas obligatoire donc ça risque de surcharger la bdd ..

  11. #11
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Arf, tu restes sur la méthode concat du coup ...

    Oui tu peux enregistrer les états de toutes tes CheckBox dans un seul champ avec quelque astuce.
    Par contre à part à en avoir une vraie grosse fournée ça devrait pas être trop coûteux en ressource.
    Après ça peut être une simple question d'esthétique, à toi de voir.

    Astuce 1 : (la simple) tu utilises un VARCHAR de longueur équivalente au nombre de tes CheckBox.
    Chaque était correspond à un 'O'/'N' de cette chaîne.

    Astuce 2 : (ma préférée) tu utilises un xxxINT pouvant contenir autant de bits que tu as de CheckBox.
    (TINYINT = 1 octets, SMALLINT = 2 octets, MEDIUMINT = 3 octets ...).
    C'est technique a l'avantage d'être particulièrement efficace vu qu'il suffit d'utiliser des masks pour atteindre la valeur souhaitée.

    Astuce 3 : (la lourdingue) tu utilises un VARCHAR/TEXT assez grand pour contenir un descriptif préhensible de tes états (XML/JSON).
    Cette technique permet d'enregistrer bien plus que juste des checked true/false, mais elle est un lourde à mettre en place.

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 51
    Par défaut
    Merci ducoup j'ai fait la 3eme technique ça marche ..
    Sa ira !
    merci beaucoup en tout cas

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

Discussions similaires

  1. [JComboBox] Erreur lors de la recupération d'une valeur
    Par patriot dans le forum Composants
    Réponses: 44
    Dernier message: 09/09/2010, 17h30
  2. Recupération d'une valeur d'une variable de session
    Par gabdeschenes dans le forum ASP.NET
    Réponses: 16
    Dernier message: 05/06/2009, 16h52
  3. Réponses: 2
    Dernier message: 09/07/2008, 16h46
  4. Réponses: 4
    Dernier message: 20/04/2006, 00h34
  5. Réponses: 11
    Dernier message: 19/12/2005, 11h02

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