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 :

est ce qu'il y a un probleme dans cette instruction


Sujet :

C#

  1. #1
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut est ce qu'il y a un probleme dans cette instruction
    salut

    je sais que c bête comme question, mais je vais la posé comeme

    SVP dis moi est ce qu'il y a un problème dans ce test puisque malgré que les condition sont toujours vrai , mais le flag reste toujours false


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    string x1= textBox1.Text;
    string x2 = textBox2.Text;
    bool flag = false;
     
    if ((x1 == dataGridView1[1,i].Value.ToString()))  && x2 == dataGridView1[4,i].Value.ToString()))
                     {
                         flag = true;
                     }
    merci d'avance
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Il y a un truc qui s'appelle un debogueur dans tout bon environnement de développement. Je te conseille de l'utiliser. Il sert à répondre à ce genre de questions.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    salut,
    C'est claire, dans ce cas vaut mieux mettre un point d'arrêt en utilisant le débogueur,
    mais je pense vu que tu compare des chaines de caractères, il y a souvent des problèmes liés à la casse et aux espaces du début et fin de chaine.
    il est conseillé d'améliorer un peu ton code en ajoutant trim et ToUpper:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    string x1= textBox1.Text.trim().ToUpper();
    string x2 = textBox2.Text.trim().ToUpper();
    bool flag = false;
     
    if ((x1 == dataGridView1[1,i].Value.ToString().trim().ToUpper()))  && x2 == dataGridView1[4,i].Value.ToString().trim().ToUpper()))
                     {
                         flag = true;
                     }

  4. #4
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Bonjour,

    Quand tu accedes à des tableau, ça vaut aussi toujours la peine de tester l'existance des "cases".

    par exemple: dataGridView1[4,i] Es-tu toujours sur que tu auras 5 lignes ds ton datagrid ?

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si c'est bien ton code et pas une erreur de copier coller, tu as des problèmes de parenthèses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((x1 == dataGridView1[1,i].Value.ToString()))  && x2 == dataGridView1[4,i].Value.ToString()))
                     {
                         flag = true;
                     }
    J'ai mis des couleurs pour se repérer.

    A mon avis voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((x1 == dataGridView1[1,i].Value.ToString())  && (x2 == dataGridView1[4,i].Value.ToString()))
                     {
                         flag = true;
                     }
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    Merci pour la réponse

    le probleme des parenthese c juste une faute de copier coller

    merci
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par ZuoYue Voir le message
    il est conseillé d'améliorer un peu ton code en ajoutant trim et ToUpper
    Peux tu expliquer en quoi ToUpper() est capable d'améliorer une comparaison de chaînes ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    En fait cela dépend si l'on veut être case sensitive ou non dans la comparaison.

    J'ai fait pas mal de comparaison de chaine de caractères où je souhaitais validé que les chaines sont égales qu'elles soient en minuscules ou majuscules. Donc sans être case sensitive.
    Et j'ai souvent constaté que ce n'est pas toujours écrit en majuscules ou minuscules, des fois un peu des deux.
    Cela faussait mon test, alors pour résoudre ce problème j'ai utilisé ToUpper sur les deux chaines à tester.

    Voilà pourquoi ZuoYue a conseillé ToUpper (du moins je crois).

    C'est utile à condition de ne pas vouloir différencier deux chaines où les seules différences seraient au niveau des majuscules.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Peux tu expliquer en quoi ToUpper() est capable d'améliorer une comparaison de chaînes ?
    merci a tous, avec le débogueur et Trimstar() et Trimend(), j'ai réglé le probleme

    merci encor une fois
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  10. #10
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par ced600 Voir le message
    En fait cela dépend si l'on veut être case sensitive ou non dans la comparaison
    [...]
    Je ne vois toujours pas l'intérêt de passer tout en majuscule pour comparer sans tenir compte de la casse, alors qu'il existe des méthodes faites pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine.Equals(maDeuxiemeChaine, StringComparison.InvariantCultureIgnoreCase)
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ha je ne la connaissais pas
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. ou se trouve le probleme dans cette maco?
    Par neoconcept2 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/02/2012, 00h00
  2. Réponses: 6
    Dernier message: 28/01/2008, 11h29
  3. qu'est ce qui va pas dans cette fonction???
    Par access001 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/04/2006, 13h10
  4. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 16h47
  5. Probleme dans ma requete
    Par Kuroro dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 11h14

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