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 :

datetimepicker C# vers datetime MYSQL


Sujet :

C#

  1. #1
    Membre averti
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut datetimepicker C# vers datetime MYSQL
    Hello,

    Je suis sous Visual studio express 2010 c#.
    J'ai un petit soucis, je n'arrive pas insérer une date provenant d'un datetimepicker dans ma base de données MYSQL....

    Quand j'affiche la date formatée du datetimepicker dans un messageBox.show, le format est correct pour MYSQL ==> 2011-15-07
    Mais à l'insertion, dans la DB j'ai ceci ==> 0000-00-00 00:00:00

    Ou est l'erreur ?

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    private void button1_Click(object sender, EventArgs e)
            {
                DateTime DateValue = Convert.ToDateTime(dateTimePicker1.Text);
                string dd = DateValue.ToString("yyyy-MM-dd");
                MessageBox.Show(dd); // affiche  2011-07-15 format Ok pour MYSQL
     
                MySqlConnection con = new MySqlConnection(connexion);
                MySqlCommand command = con.CreateCommand();      
     
                try
                {
     
                    command.CommandText = "INSERT INTO ma_date (date_date) values (" + dd + ")"; //  Et dans la DB ça affiche 0000-00-00 00:00:00
                    con.Open();
                    command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erreur 2: " + ex.Message);
                }
     
                con.Close();
            }

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il faut jetter un oeil sur les requêtes paramétrées en .Net. Des tutoriaux sur cette notion sont dispo sur ce site

  3. #3
    Membre averti
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Merci mais je n'y vois rien d'intéressant concernant mon problème...

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Cet inévitable tuto : http://johannblais.developpez.com/tu...s-donnees/#LIV

    En résumé, n'essaie pas de convertir la date en chaîne. Crée une requête, avec un paramètre de type DateTime, et le fournisseur d'accès aux données se chargera de donner cette date à la base.

  5. #5
    Membre averti
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Ok merci je vais regarder le lien. Je n'avais pas trouvé celui là.
    Je vous tiens au courant.

  6. #6
    Membre averti
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Je poste ici la solution pour ceux qui comme moi se trouveraient dans la même impasse.
    En ce qui concerne le tutoriel, je prendrai le temps de m'y plonger lorsque j'aurai un peux plus de temps libre, tout en sachant que pour éviter les problèmes de format ça reste une approche indispensable

    Voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     private void button1_Click(object sender, EventArgs e)
            {
                DateTime DateValue = Convert.ToDateTime(dateTimePicker1.Value);
                string dd = DateValue.ToString("yyyy-MM-dd");
                dd = dd + " " + "09:00:00";
                DateValue = Convert.ToDateTime(dd);            
     
                MySqlConnection con = new MySqlConnection(connexion);
                MySqlCommand command = con.CreateCommand();      
     
                try
                {
     
                    command.CommandText = "INSERT INTO ma_date (date_date) values ('" + DateValue.ToString("yyyy-MM-d HH:mm:ss") + "')"; // Dans la DB ça affiche 2011-07-15 09:00:00
                    con.Open();
                    command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erreur 2: " + ex.Message);
                }          
     
                con.Close();
            }
    Merci de vous être intéressés à mon sujet

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    C'est pas du tout la bonne solution! Il n'y a pas de paramètres utilisés! Comme expliqué dans l'article: tu t'exposes aux injections SQL et si tu changes la langue de MySQL pouf ca marche plus!
    Quelle est la difficulté à rajouter un paramètre comme indiqué dans l'article?

  8. #8
    Membre averti
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Je sais mais comme je viens de le dire un peux plus haut, je m'y plongerai quand j'aurai plus de temps.
    Et le changement de langage n'est pas prévu au programme.

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

Discussions similaires

  1. DATETIME MySQL, Date et GregorianCalendar
    Par vallica dans le forum JDBC
    Réponses: 4
    Dernier message: 03/04/2006, 19h12
  2. [SGBD] Traitement Données Formulaire Vers BDD Mysql
    Par Thierry8 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 29/03/2006, 23h22
  3. conversion date timestamp vers date mysql
    Par seb0026 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/10/2005, 19h48
  4. [Delphi 6][MySql 4.1.11][Win XP] - Connection vers DB MySQL
    Par florran dans le forum Bases de données
    Réponses: 15
    Dernier message: 16/06/2005, 14h30

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