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

ASP.NET Discussion :

[2.0] Fonction Replace avec apostrophe


Sujet :

ASP.NET

  1. #1
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut [2.0] Fonction Replace avec apostrophe
    Salut tlm,

    Bon, je deviens fou.
    J'arrive pas à doubler une apostrophe dans une chaine de caractères (pour insert ensuite).

    string toto = "l'équipe";
    toto.Replace("'","''") ne marche pas
    J'ai essayé avec des \ aussi mais ça ne marche pas.

    Quelle est la syntaxe correcte ?
    Merci si vous pouvez me dépanner

  2. #2
    Membre averti Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Points : 428
    Points
    428
    Par défaut
    Salut, toto.replace(...) ne modifie pas la variable toto mais retourne une nouvelle string avec les modifications demandées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto = toto.Replace("'","''");
    Sinon dans le cas d'une requête SQL tu peux toujours utiliser un SqlParameter qui se chargera de faire cette vérification sur la présence d'un apostrophe à ta place .

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par _PascalC_ Voir le message
    Sinon dans le cas d'une requête SQL tu peux toujours utiliser un SqlParameter qui se chargera de faire cette vérification sur la présence d'un apostrophe à ta place .
    Je dirais même plus, tu DOIS utiliser un paramètre. C'est une bonne pratique qui évite pas mal de problèmes liés au format des données, et permet d'améliorer les performances si la requête est exécutée plusieurs fois.

    Petite précision pour _PascalC_ : le fait d'utiliser un paramètre ne "vérifie" pas la présence d'une apostrophe. La requête est transmise telle quelle au SGBD, et les paramètres sont transmis séparément.

    Plus d'infos sur l'utilisation des paramètres ici :
    http://johannblais.developpez.com/tu...s-donnees/#LIV

  4. #4
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto = toto.Replace("'","''");
    Salut les gars, merci pour vos réponses et mises en garde pour les pbs de sécurité liés à l'injection SQL.

    Mais le code ci-dessus ne marche pas...Ou alors je suis complètement fou

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    comment ça, ça ne marche pas ?
    ça fait une erreur (et laquelle) ? ça ne remplace pas ?

    au fait, tu es sûr que ce sont bien des vraies apostrophes dans ta chaine, et pas des "back-quotes" ("`") ou quelque chose comme ça ?

  6. #6
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par tomlev Voir le message
    comment ça, ça ne marche pas ?
    Ecoute, je viens de refaire chez moi, et là ça marche...Je comprends rien. J'ai dû fumer la moquette...Désolé
    Je retenterai au taf demain avant de fermer le post.
    C'est fou comme une petite connerie peut faire perdre du tps, et aux autres aussi...

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    avec des requêtes paramétrées, la question ne se serait même pas posée...

  8. #8
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par tomlev Voir le message
    avec des requêtes paramétrées, la question ne se serait même pas posée...
    Je le fais, promis

    Sinon, crois-moi ou pas, mais ça ne marche pas avec ma config au taf...J'y comprends rien.
    Chiffre 4 du clavier pour apostrophe
    Et la, je fais copier/coller de ta ligne de code, et ça marche

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

Discussions similaires

  1. Soucis avec fonction Replace et apostrophe
    Par richard_sraing dans le forum ASP
    Réponses: 2
    Dernier message: 30/04/2010, 08h03
  2. Fonction replace avec un long
    Par laury dans le forum SQL
    Réponses: 3
    Dernier message: 24/05/2007, 13h35
  3. fonction replace avec espaces
    Par clairette dans le forum Langage
    Réponses: 8
    Dernier message: 16/04/2007, 17h12
  4. fonction "REPLACE" avec condition
    Par emilek dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/03/2007, 17h08
  5. fonction replace avec %
    Par DomZZZ dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 08/02/2007, 11h31

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