Apostrophes dans une requete SQL

Signaler
Messages postés
151
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2013
-
parlaciel
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009
-
Dans ma requete sql, je souhaite remplacer les apostrophes par \' pour que la requete puisse etre insérée donc j'ai voulu utiliser la fonction mavariable.Replace mais comme les options de la fonction doivent etre mises entre apostrophes elles memes, ca ne passe pas donc j'ai essayé mavariable.Replace('\'', '\\\''); mais sans succès, quelqu'un aurait il une idée ?

d'avance Merci
Julien

5 réponses

Messages postés
2
Date d'inscription
samedi 21 août 2004
Statut
Membre
Dernière intervention
10 octobre 2004
1
En réalité le caractère d'échappement à utiliser est l' apostrophe " ' ".

On doit donc remplacer le(s) simple(s) apostrophe(s) avec deux doubles apostrophes.

Il faut don utiliser cet expression ci:
mavariable.Replace(" ' ", " '' ") .

En français:
mavariable.Replace(double simple double virgule double simple simple double).
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
42
Et si tu fais tout simplement

mavariable.Replace(" ' ", " \' ") ?

Enfin, aucune idée si ca va marcher, jamais utilisé le replace en C#...
Mais quand je codais en ASP je faisais comme ca.

(Quand je regarde dans la doc du SDK, apparement en premier parametre ils mettent la string a modifier, je sais pas ce qu'il en est...)

Mx
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009

bonjour! j'ai exactement ce problème dans mon appli... et malheureusement lorsque je tente de remplacer l'apostrophe par deux apostrophes..... visual studio aime pas trop...

string s = "l'orage est passé";
 foreach (char c in s)
            {
                s = s.Replace("'", "  '' ");
            }

et malheureusement je ne vois pas d' autre solution...
si quelqu'un pouvais me venir en aide!! merci d' avance
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
42
Salut,

En fait la "vraie" bonne solution n'est pas celle que j'ai donné dans ma réponse plus haut, qui date d'il y a plus de 5 ans, mais plutot d'utiliser des requetes paramétrées, qui géreront ce type de problème pour toi

Mx
MVP C# 
Messages postés
33
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
22 décembre 2009

Je profite d'un petit passage sur le forum pour poster la solution à mon probléme qui certe est pas trop propre mais qui fonctionne!!!! on sait jamais des fois que quelqu'un rencontre le même probléme ^^

   //Méthode qui va renvoyer un string adapté a la requête sql
        public string toSqlString(string phrase)
        {
            string modif = null;
            string insert = "'";
            char c = '\'';
            int j = phrase.Length;
            for (int i = 0; i < j; i++)
            {
                modif = modif + phrase[i];
                if (phrase[i] == c)
                {
                    modif = modif + insert;
                }
            }
            return modif;

        }