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 :

Erreur Lecture base de donnée


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut Erreur Lecture base de donnée
    Bonjour a tous,
    je travaille actuellement sur une application connecté a la base de donnée MySQL que j'ai mis en place.
    Mon application dispose d'un datagrid et quand je clique sur une ligne de ce tableau il m'ouvre dans une fenetre les données.

    Voila j'ai un probleme... Parfois il m'ouvre les données dans la nouvelle fenetre alors que parfois non il me met ce message d'erreur :

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '................................'' at line 1
    J'ai cherché sur le net mais je ne trouve pas asser d'information.

    Mon application est en codé en C# WPF

    voici mon code pour la lecture des données dans la base

    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
    public Saisie ( FAQ.MyData data)    
            {
                InitializeComponent();
     
                // Instancier l’objet Command
                        using (MySqlCommand wCommand = Home.wConnexion.CreateCommand())
                         {
                            // Définition de la requête
                            wCommand.CommandText = "SELECT * FROM faq_t WHERE erreur ='" + data.erreur + "'";
     
                            // Lecture des résultats
                            using (MySqlDataReader  wReader = wCommand.ExecuteReader())
                            {
                                // Remplir le textbox
                                while (wReader.Read())
                                {
     
                                    string wItem = wReader["erreur"].ToString();
                                    string wItems = wReader["descriptif"].ToString();
                                    string wItem1 = wReader["type"].ToString();
     
     
                                    textBox1.Text = (wItem);
                                    textBox2.Text = (wItems);
                                    comboBox1.Text = (wItem1);
                                }
                            }
                        }
                    }
    Merci de votre aide.

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Salut,

    As-tu récupéré la valeur de ton wCommand.CommandText pour voir quelle est ta requête ? Il y a des chances qu'il y ait une simple quote dedans.

  3. #3
    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 : 38
    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
    Première recommandation: utiliser les requêtes parametrées!

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    Non je n'ai pas récupéré la valeur je ne sais pas le faire.
    C'est quoi les requêtes parametrées ?

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Par requêtes paramétrées, Nathanael voulait dire procédures stockées. Il y à plein d'exemple disponibles sur la toile à ce sujet.

    Par ailleurs, quand je disais "récupérer la valeur", il faut que tu lances ton programme en mode pas-a-pas et que tu mettes un point d'arrêt sur wCommand.CommandText pour voir ce qu'il récupère.

  6. #6
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Par requêtes paramétrées, Nathanael voulait dire procédures stockées.)
    Nan ! RAV
    Il y a plein de docs sur les req paramétrées.
    En les utilisant, on se contrefout de la transformation des string, des dates etc....

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu as un exemple ici

    http://www.thaicreate.com/asp.net/c-...ter-query.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String QueryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?p1";
    MySqlCommand Cmd = new MySqlCommand(QueryString, Connection);
    Cmd.Parameters.Add("?p1", MySqlDbType.VarChar, 3).Value = "a";

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    youtpout978 Les requêtes paramétrées devraient arranger mes problèmes?
    Par ce que je trouve bizarre que sa marche avec certain ligne dans le tableau d'autre ligne non

Discussions similaires

  1. erreur de base de données
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 06/06/2007, 11h43
  2. erreur acces base de donnée.
    Par Phiss dans le forum ASP
    Réponses: 8
    Dernier message: 08/11/2006, 10h49
  3. erreur connexion base de données access
    Par Adren dans le forum ASP
    Réponses: 17
    Dernier message: 22/06/2006, 08h34
  4. lecture base de donnée avec vc++ 2005
    Par k_boy dans le forum MFC
    Réponses: 13
    Dernier message: 21/04/2006, 11h48
  5. Réponses: 2
    Dernier message: 19/06/2003, 21h58

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