Salut,
j'ai un soucis avec la methode Replace.
avec result = "\a" je n'obtiens pas le resultat escomtpté qui a mon serai "\\a".Code:result = result.Replace(@"\", @"\\");
Que dois je amélioré dans ma routine où se trouve mon erreur.
Merci
Version imprimable
Salut,
j'ai un soucis avec la methode Replace.
avec result = "\a" je n'obtiens pas le resultat escomtpté qui a mon serai "\\a".Code:result = result.Replace(@"\", @"\\");
Que dois je amélioré dans ma routine où se trouve mon erreur.
Merci
Salut,
Si je fais ceci ca marche chez moi:
J'obtiensCode:
1
2
3 string test = @"\a"; test = test.Replace(@"\", @"\\"); Console.WriteLine(test);
Si je faisCode:\\a
Ca marche aussi et j'obtiens \\\\aCode:string test = @"\\a";
La difference c'est que moi je faisquand j'initialise ma chaineCode:@"\a"
Je veux en fait utilisé les caractères générique ("\","%"....) sql comme caractères normaux dans une expression like. Mon escape est "\".
Donc si l'utilisateur entre par exemple "\a" j'aimerai transformé cela en "\\a" en mon expression sql. et la je coince
Tu peux voir ici
Bonjour, cette façon de faire est dangereuse du fait du risque d'attaque par injection SQL. Mieux vaut utiliser une requête paramétrée. Cela évitera de se demander si le code est exhaustif et robuste, ou de devoir le réexaminer si le DB utilisée devait changer.
Cela étant dit il aurait fallu faire quelque chose du genre: str.Replace("\a", @"\a").Replace("\n", @"\n").Replace(...
Mais encore une fois cette approche est plus que déconseillée.
je ne trouve tjr pas de solution me permetant de transformer "\a" en "\\a". @"\a" c est autre chose et mon utiliseur entre "\a".
La solution que j'ai proposée fonctionne.
desolé j'ai posté sans avoir lu ta solution.
Apres mon backslash je peut voir une lettre comprise entre [a-z] est il possible de géneraliser ta solution?
Oh oui, tu pourrais créer une boucle pour effectuer 26 remplacements. Et là tu te rendrais compte que tu dois encore gérer le cas des guillemets, et tu te demanderais après ça si ton code est vraiment robuste.
Encore une fois une requête paramétrée serait très préférable.
En effet, tu devrais utiliser les requetes parametrisees!
Si tu as une attaque par injection, ton code sera plus qu'inutile et tes donnees seront accessible directement.
Tu dis que tu n'as pas les bons resultats mais peux tu nous poster le code que tu as mis en place ?