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

Windows Forms Discussion :

textbox.Text.Replace ' par '' impossible


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut textbox.Text.Replace ' par '' impossible
    bonjour

    je fait une appli qui récupère les valeurs de textboxs pour mettre ajour une base, mais si dans les champs il y a une apostrophe, ca me plante la requete... donc pour regler ce probleme je voudrais doubler les apostrophes, ce qui fonctionne

    sauf que le textbox.Text.replace ne parcourt pas les mots dans les champs pour remplacer !!! donc il ne remplace rien !!
    si quelqu'un sait comment faire pour parcourir les champs caractère par caractère...

    voici le code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (Control tb in this.Controls)
                {
                    if ((tb is System.Windows.Forms.TextBox)||(tb is System.Windows.Forms.RichTextBox))
                    {
                        // ne remplace pas... ???? 
                        tb.Text.Replace("'", "''");
                    }
     
                }
    merci !!

  2. #2
    Membre actif Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Points : 284
    Points
    284
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                foreach (Control tb in this.Controls)
                {
                    if ((tb is System.Windows.Forms.TextBox)||(tb is System.Windows.Forms.RichTextBox))
                    {
                        // ne remplace pas... ???? 
                        tb.Text = tb.Text.Replace("'", "''");
                    }
     
                }
    En fait le Replace renvoie une string et n'agit pas sur le l'objet appelant mais en créant un autre avec les modif

  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
    Replace ne modifie pas la chaine sur laquelle tu l'exécutes (d'ailleurs les chaines en .NET ne sont pas modifiables), mais renvoie une autre chaine dans laquelle les caractères sont remplacés. Il faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (Control tb in this.Controls)
                {
                    if ((tb is System.Windows.Forms.TextBox)||(tb is System.Windows.Forms.RichTextBox))
                    {
                        // ne remplace pas... ???? 
                        tb.Text = tb.Text.Replace("'", "''");
                    }
     
                }
    Soit dit en passant, le doublement des apostrophes n'est pas une très bonne façon de faire... il vaut mieux passer par des requêtes paramétrées, comme expliqué dans le tuto de SaumonAgile :
    http://johannblais.developpez.com/tu...s-donnees/#LIV

  4. #4
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Merci !!!! ca fonctionne!!!
    effectivement, les requetes parametrées ont l'air plus propres, mais je n'ai malheureusement pas le temps de m'y lancer pour l'instant... a prévoir pour une mise a jour ^^

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

Discussions similaires

  1. [XL-2003] TextBox, texte par défaut, modifiable
    Par arkhang dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2013, 13h09
  2. [XL-2007] text souligné par textbox
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/12/2010, 18h30
  3. Réponses: 1
    Dernier message: 19/11/2009, 22h50
  4. Réponses: 5
    Dernier message: 31/07/2008, 15h51
  5. [XSD] element texte non parsé
    Par bulbo dans le forum Valider
    Réponses: 13
    Dernier message: 10/01/2005, 12h44

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