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 :

Parcourir un string => saut de ligne non désiré


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut Parcourir un string => saut de ligne non désiré
    Bonjour à tous,

    Je suis nouveau sur le forum et j'espère que ma question est posé au bon endroit.

    Donc voila je vous explique mon problème:

    Je stock dans un string l'item que j'ai sélectionné de ma combobox
    dans ce string sous forme " nom-ref" , je souhaite récupérer uniquement ce qui se trouve après le tiret.

    Jusqu'a là ça marche, la ref est bien récupéré.

    Mais lorsque je veux l'utiliser pour identifier la colonne ou je veux accéder en Mysql,
    je me rend compte qu'un saut de ligne est effectué entre la fin du string de "ref" et le " ' ".
    Ma requête s’exécute mais n'a pas le résultat attendu => la ligne n'est pas supprimé.

    Le code qui permet de récupérer les caractères voulu et qui créé la requete:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
        private void button2_Click(object sender, EventArgs e)//Bouton supprimer
            {
                String selectedItem = comboBox1.SelectedItem.ToString();
                String ReferenceARenvoyer = "";
                bool ApresTiret = false;
     
                for (int i = 0; i < selectedItem.Length; i++)
                {
                    if (selectedItem[i] == 0x2d)// 0x2d Correspond au tiret 
                    {
                        ApresTiret = true;
     
                    }
                    else if (ApresTiret == true)
                    {
                        //Récupére uniquement la reference dans la string de la combobox de l'item sélectionné
                        ReferenceARenvoyer = ReferenceARenvoyer + selectedItem[i].ToString();
     
                    }
                }
     
               // MessageBox.Show(ReferenceARenvoyer);
     
                String CMDText = "DELETE FROM `t_article` WHERE `ref`='"+ ReferenceARenvoyer +"'";
     
                System.Console.WriteLine(CMDText);
                if(MaBDD.effectuerRequete(CMDText)==true)
                {
                   label2.Text = "Supprimé!";              
                }
                else{
     
                   label2.Text = "Erreur suppression";
                }
     
     
            }
    A l'affichage de ma requete dans la console à la ligne 27 => DELETE FROM `t_article` WHERE `ref`='222222222
    '


    Donc ma question est: Pourquoi y'a t'il un saut de ligne qui s'effectue ?? J'ai essayé de bidouiller pour que cela passe quand même, mais impossible.

    Merci d'avoir pris le temps de me lire! Bonne journée

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Il faudrait savoir comment tu renseignes ta combo. A priori il doit y avoir un retour chariot à la fin de chaque item. Lorsque tu mets un point d'arrêt après la récupération de ton item sélectionné, est-ce que la variable string selectedItem n'a pas une valeur du genre nom-ref\r\n ?

    Pour récupérer la deuxième partie de ta chaine, tu peux utiliser la méthode Split qui te retourne un tableau de string, c'est mieux qu'une boucle. Et au pire pour supprimer le retour à la ligne, tu peux faire un replace (mais il vaudrait mieux savoir pourquoi ce retour à la ligne est présent) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String selectedItem = comboBox1.SelectedItem.ToString().Split('-')[1].Replace("\r\n", "");
    Autre remarque : Il est très fortement déconseiller d'utiliser des concaténations de chaines pour les requêtes SQL. Utilise des requêtes paramétrées (il y a plein de docs sur le net)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut EDIT
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Il faudrait savoir comment tu renseignes ta combo. A priori il doit y avoir un retour chariot à la fin de chaque item. Lorsque tu mets un point d'arrêt après la récupération de ton item sélectionné, est-ce que la variable string selectedItem n'a pas une valeur du genre nom-ref\r\n ?

    Pour récupérer la deuxième partie de ta chaine, tu peux utiliser la méthode Split qui te retourne un tableau de string, c'est mieux qu'une boucle. Et au pire pour supprimer le retour à la ligne, tu peux faire un replace (mais il vaudrait mieux savoir pourquoi ce retour à la ligne est présent) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String selectedItem = comboBox1.SelectedItem.ToString().Split('-')[1].Replace("\r\n", "");
    Autre remarque : Il est très fortement déconseiller d'utiliser des concaténations de chaines pour les requêtes SQL. Utilise des requêtes paramétrées (il y a plein de docs sur le net)
    Bonjour,
    Effectivement il doit y avoir un retour chariot dans l'une de mes manips, enfin je l'espère.
    Je renseigne ma combo à l'aide d'une classe C_ARTICLES et d'une classe C_LISTEArticles.
    Je m'en sers pour créer une liste de ma table t_articles de 8 champs et n lignes, de ma bdd.
    Dans ma classe C_ARTICLES j'ai une méthode pour convertir les différent éléments de la réponse du select peut être l’élément Environment.NewLine ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public override string ToString()
                 {
                     string msg = "";
     
                     msg = "Nom/ref: " + Nom + " " + Environment.NewLine + "-" + Reference + "" + Environment.NewLine;
                     /* + "Marque = " +Marque+ " " + Environment.NewLine
                             + "Descriptions = " +Description+ " " + Environment.NewLine + "Prix = " +Prix+" " + Environment.NewLine + "Photo = " +Photo+ " " + Environment.NewLine
                                 + "En stock = " +EnStock+ " " + Environment.NewLine + "Seuil = " +Seuil+" " + Environment.NewLine + "-------------" +Environment.NewLine;
                    */
     
     
                     return msg;
                 }
    Je prend note de vos conseils, merci

    EDIT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public override string ToString()
                 {
                     string msg = "";
    
                     msg = "Nom/ref: " + Nom + " " + Environment.NewLine + "-" + Reference + "" + Environment.NewLine;
                     
                     MessageBox.Show(msg);
                     return msg;
                 }
    Lorsque je met un point d'arrêt à la ligne du MessageBox, et que je pose le curseur sur "msg" j'ai ça dans la variable:
    "Nom/ref: Routeur Gigabit \r\n-1111111111\r\n"

    Donc il y'a bien un retour chariot a ce niveau ..

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    c'est l'idée d'un Environment.NewLine, ça correspond au(x) caractère(s) d'un saut de ligne pour ton environnement ("\r\n" le plus souvent).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut Résolu
    Je suis vraiment un noob encore !

    J'ai juste viré le Environement.NewLine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     public override string ToString()
                 {
                     string msg = "";
     
                   //  msg = "Nom/ref: " + Nom + " " + Environment.NewLine + "-" + Reference + "" + Environment.NewLine;
                     msg = "Nom/ref: " + Nom + "-" + Reference + "";
     
     
                     MessageBox.Show(msg);
                     return msg;
                 }

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

Discussions similaires

  1. Retour à la ligne non désiré avec fwrite()
    Par erehcab dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2011, 12h51
  2. [MySQL] Retours à la ligne non désirés
    Par novisoft dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/12/2010, 12h20
  3. Réponses: 6
    Dernier message: 22/10/2009, 17h08
  4. [T4][XML] Saut de ligne non désiré en début de fichier XML
    Par jfpacory dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 22/06/2009, 20h22
  5. saut de page non désiré
    Par -=mateo=- dans le forum Mise en forme
    Réponses: 0
    Dernier message: 03/06/2009, 14h53

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