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 :

[SQL Client] problème idiot de guillemets


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 136
    Par défaut [SQL Client] problème idiot de guillemets
    salut a tous,

    voilà, je me retourve avec un problème très bête (enfin je pense). lors de l'exécution de mon application une exception apparait me disant que je doit rajouter une guillemet au début d'une chaine de caractère dans une requête SQL.

    alors je vois bien ce qui le bloque. j'ai certains texte à insérer comprenant des apostrophes ('). j'ai plus l'habitude du PHP et j'ai donc cherché un équivalent à addslashes(), mais rien. j'utilise donc la méthode replace du type string.

    voici le code qui pose problème.
    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
     
    foreach(string colname in res)
                            {
                                switch ((int)cbOperateur.SelectedValue)
                                {
                                    case 1:
                                        tmp = "SELECT champSFR FROM correspondances WHERE champSFR='" + colname.Replace("'","\'") + "'";
                                        break;
                                    case 2:
                                        tmp = "SELECT champOrange FROM correspondances WHERE champOrange='" + colname.Replace("'", "\'") + "'";
                                        break;
                                    case 3:
                                        tmp = "SELECT champBouygues FROM correspondances WHERE champBouygues='" + colname.Replace("'", "\'") + "'";
                                        break;
                                }
                                cmd = new SqlCommand(tmp, sqlConn);
                                if (cmd.ExecuteNonQuery() > 0)
                                {
                                    MessageBox.Show(tmp);
                                }
                            }
    l'exception apparait lors de l'appel de la méthode cmd.ExecuteNonQuery().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Syntaxe incorrecte vers 'abonnement'.
    Ouvrez les guillemets après la chaîne de caractères '''.
    abonnement étant la partie de "Période d'abonnement" que je dois insérer dans la BDD.

    j'espère que vous pourrez m'aider,

  2. #2
    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
    Problème uuuultra classique
    Solution uuuuultra éprouvée : ne pas générer la requête en live sous forme de chaîne de caractère, et utiliser des requêtes paramétrées.
    C'est bien expliqué ici : http://johannblais.developpez.com/tu...s-donnees/#LIV

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 136
    Par défaut
    ça me vient du php ça de concaténer les valeurs directement dans la chaine de la requête lol

    ben merci à toi, je vais essayer.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 136
    Par défaut
    j'ai rien dit c'était rien ^^

  5. #5
    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
    Parce qu'il faut créer la commande d'abord. Là, quand tu écris cmd.CommandType = machin, ton cmd est encore null, visiblement.

    Pour résoudre tout seul ce genre de problème, utilise le debugger en mode pas à pas : tu verras où est la ligne qui pète, et tu sauras comment la corriger en fonction du message d'erreur.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 136
    Par défaut
    oui là c'était vraiment nul comme erreur. je l'ai vu tout seul en fait, mais trop tard.

    ça fonctionne. merci de ton aide

  7. #7
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Par défaut
    comment tu as corriger ce probléme??
    j'ai le même erreur malgré que j'ai créer la commande avant la requete comme suit
    IDbCommand cmd = conn.CreateCommand();

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

Discussions similaires

  1. Problème requête SQL / Client par datefacture
    Par paradis.jp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/08/2008, 16h09
  2. Réponses: 4
    Dernier message: 27/03/2008, 20h16
  3. [SQL] problème avec les guillemets et rawurldecode
    Par xenos dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/02/2007, 13h34
  4. Réponses: 4
    Dernier message: 30/01/2005, 14h23
  5. Réponses: 4
    Dernier message: 10/06/2004, 18h05

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