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 :

Erreur : "La chaîne d'entrée est incorrect"


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut Erreur : "La chaîne d'entrée est incorrect"
    Bonjour à tous!

    Voici mon problème, j'ai deux DateTImePicker, une combobox, un button et mon objectif est de choisir deux jours, un nom dans le combobox et après avoir cliqué sur le bouton, le résultat me sort dans un datagridview.

    Rien de trop trop complexe, la requete est bonne (testé sous MySQL dans la page admin), aucune erreur de code (du moins à la compilation).

    J'exécute, et la bim! J'ai droit à une belle erreur : "La chaîne d'entrée est incorrect".
    Une idée d'ou ca pourrait venir ? J'ai tenté de faire ComboBox.Text.ToString(); ca n'a donné aucune résultat (je savais que ca allait rien faire mais je me sentais obligé de tester...

    J'ai trouvé sur ce forum un topic équivalent http://www.developpez.net/forums/d19...ree-incorrect/ et http://www.developpez.net/forums/d69...me-conversion/

    qui parlait de la même chose. Peut-être est-ce à cause du résultat (qui est de cette forme XXXXXX.XXXXXXXXXX). Est-ce que le DGV supporte autant de chiffre, dois-je réduire à par exemple XXXX.XX ? Est dans ce cas, comment dois-je le faire.


    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
    26
    27
    28
    29
    30
    31
     
    conn.Open();
     
                DateTime DUmyTime = this.DUDatePicker.Value;
                int DUmyDay = DUmyTime.Day;
                int DUmyMonth = DUmyTime.Month;
                int DUmyYear = DUmyTime.Year;
     
     
                DUMyDate = "'" + DUmyYear.ToString() + "-" + DUmyMonth.ToString() + "-" + DUmyDay.ToString() + " 00:00:00'";
     
                DateTime AUmyTime = this.AUDatePicker.Value;
                int AUmyDay = AUmyTime.Day;
                int AUmyMonth = AUmyTime.Month;
                int AUmyYear = AUmyTime.Year;
     
                LABO = comboBox1.Text;
     
     
                AUMyDate = "'" + AUmyYear.ToString() + "-" + AUmyMonth.ToString() + "-" + AUmyDay.ToString() + " 00:00:00'";
     
                //Requete SQL
                MySQLDriverCS.MySQLDataAdapter MyAdapter = new MySQLDriverCS.MySQLDataAdapter("REQUETE", conn);
     
                DataSet ds = new DataSet();
                MyAdapter.Fill(ds, "produit");
     
                // Affichage du contenu de ds
                dataGridView1.DataSource = ds.Tables["produit"].DefaultView;
     
                conn.Close();

    Merci

    EDIT : j'ai oublié de dire quelque chose. Quelques fois (de manière complètement aléatoire), il arrive que le tableau s'affiche, mais sans résultat!
    Donc voila je pense que c'est vraiment une histoire de "," ou "."

  2. #2
    Membre expérimenté
    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 : 47
    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
    Par défaut
    A mon avis c'est le format des dates dans la requête qui pose problème. Dans l'état c'est la seule chose qui me vienne à l'esprit en tout cas. Pour éviter ce genre de soucis, l'idéal c'est de passer par une requête paramétrée. Tu n'auras plus à faire des concaténations entre les mois / jours / année, tu passes un paramètre de type date et c'est tout.

    Avec quelques recherches tu trouveras facilement des infos à ce sujet

    Si le problème persiste après ça, on fera un point de nouveau ^^

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    Ok je vous remercie Je vous tiens au courant.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    Re !

    Après reflexion et plusieurs tests, (j'ai fais tout et à peut-prêt n'importe quoi...), je pense que ce n'est pas à cause de la requête. Je m'explique, voici cette dernière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    SELECT SUM( PRIX * QUANTITE_LIGNE_COMMANDE ) AS CA_LABO
    FROM laboratoire, produit_laboratoire, commande, ligne_commande
    JOIN produit ON ( ligne_commande.ID_PRODUIT = produit.ID_PRODUIT )
    WHERE ligne_commande.NUMERO_COMMANDE = commande.NUMERO_COMMANDE
    AND commande.DATE_CREATION_COMMANDE
    BETWEEN '2009-1-1 00:00:00'
    AND '2009-1-28 00:00:00'
    AND ligne_commande.ID_PRODUIT = produit_laboratoire.ID_PRODUIT
    AND produit_laboratoire.ID_LABORATOIRE = laboratoire.ID_LABORATOIRE
    AND laboratoire.NOM_LABORATOIRE = 'bioderma'
    GROUP BY produit_laboratoire.ID_LABORATOIRE
    LIMIT 0 , 30

    Sous MySQL elle fonctionne, maintenant, prenez mon post précédent, mettez cette requête à la place de "REQUETE", et la j'ai droit à l'erreur : "Le format de la chaîne d'entrée est incorrect".

    Franchement je vois pas, jsuis à l'ouest

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Par défaut
    j'ai fait le meme type de fonction avec access et SQL server, ce que je te conseil de faire et de decouper ta requete et de l'executer en ajoutant au fur et a mesure ta clause where. Comme cela tu trouveras plus facielement la chaine qui pose probleme.
    Je sais que souvent ce sont les dates qui posent probleme.
    bon courage (parce qu'il en faut beaucoup pour ce genre de bug...)
    Edit : je pense que le ='biodera' c'est mieux avec un LIKE

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Par défaut
    En effet LIKE c'est mieux que '=' mais ca n'a rien changé.

    Comment faire pour exécuter la requête et de rajouter au fur et à mesure les JOIN, WHERE ect..
    Tu pourrais me faire un exemple ? (j'ai fais deux trois test pour tenté de le faire mais d'une part ca a échoué et d'autre part je pense que ce que j'ai tenté de faire pourrait rentrer dans les anales des pires et des plus déplorables codes créés xD)

Discussions similaires

  1. Le format de la chaîne d'entrée est incorrect.
    Par Josselin54 dans le forum C#
    Réponses: 10
    Dernier message: 26/01/2011, 08h13
  2. Le format de la chaîne d'entrée est incorrect.
    Par badi3a82 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 21/10/2010, 12h07
  3. Réponses: 2
    Dernier message: 12/02/2009, 09h59
  4. [C#] [1.1] Le format de la chaîne d'entrée est incorrect
    Par Sup@Lou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/08/2006, 10h01

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