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 :

pourquoi mon filtre ne fonctionne pas correctement


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut pourquoi mon filtre ne fonctionne pas correctement
    bonjour,
    j'applique un filtre sur une datagridView, mon filtre ne fonctionne pas bien il me donne un faut résultat.
    en fait j'ai le filtre A qui est le résultat d'un filtre la même chose pour B et C.
    j'aimerai avoir l'union de tout mes filtre.

    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
          private void appliquer_filtre()
            {
                if (B != "" && A != "" && C != "")
                {
                    filtre = (B + " AND " + A + " AND " + C);
                }
                if (B != "" && A != "" && C == "")
                {
                    filtre = (B + " AND " + A);
                }
                if (B != "" && A == "" && C != "")
                {
                    filtre = (B + " AND " + C);
                }
                if (B != "" && A == "" && C == "")
                {
                    filtre = B;
                }
                if (B == "" && A != "" && C != "")
                {
                    filtre = (A + " AND " + C);
                }
                if (B == "" && A != "" && C == "")
                {
                    filtre = A;
                }
                if (B == "" && A == "" && C != "")
                {
                    filtre = C;
                }
                if (B == "" && A == "" && C == "")
                {
                    filtre = "";
                }
                tableProjectBindingSource.Filter = filtre;
            }
    merci

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    on ne connait pas les données, comment veux-tu qu'on devine l'origine du problème? :/

    tu es allé en mode debug pour voir si tu rentres dans les bons IF?


    ps: et String.Empty, pourquoi ne n'utilises-tu pas?
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    bonsoir,
    je ne sais pas quelle donnée je dois vous fournir, j'ai travaillé avec le debug mais ca ma pas aider, sinon comment je peux traduir union en C# ( just pour tester)

    pour le
    String.Empty, pourquoi ne n'utilises-tu pas?
    , je ne connais pas j'ai fais des recherche mais j'ai ren compris,,

    merci

  4. #4
    Membre confirmé
    Avatar de Dung-Tri
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 109
    Points : 597
    Points
    597
    Par défaut Propo de soluce
    C'est vrai que c'est pas facile de cerner ton problème.

    essais d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.IsNullOrEmpty(Chaine)
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!String.IsNullOrEmpty(B) && !String.IsNullOrEmpty(A) && !String.IsNullOrEmpty(C))
    {
         filtre = (B + " AND " + A + " AND " + C);
    }
    Est ce que ca résoud ton problème?
    Toute la complexité est de modéliser et de détecter les changements de contexte.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    merci,
    mais toujourss le même probleme,

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    1- D'abord c'est l'union ou l'intersection que tu veux ? Car la c'est une intersection que tu essaye d'ecrire tant bien que bal !!

    2- Tu rendrait to truc BEAUCOUP plus lisible et général si tu faisait une petite methode du style

    string unionFiltre(string filtreX)
    {
    filtre=f(filtreX); // tu compose un OR
    return filtre;
    }

    string andFiltre(string filtreX)
    {
    filtre=f(filtreX); // tu compose un AND
    return filtre;
    }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Citation Envoyé par haymen Voir le message
    merci,
    mais toujourss le même probleme,
    Que cherches-tu réellement à faire? Union ? je vais te répondre que ca fait && et pourtant ca ne t'aide! Donne plus d'infos stp

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Pour etre plus concret
    Voici une petithe methode qui me permet d'ecrire un filtre intersection "WHERE" a la volée
    Je lui passe le where actuel et l'expression a ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        // **************************************************************************************************
        private string addWhere(string xxx, string toAdd)
        {
          if (xxx.Length == 0)
          {
            return " WHERE " + toAdd;
          }
          return xxx + " AND " + toAdd;
        }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

Discussions similaires

  1. pourquoi mon code ne fonctionne pas
    Par jmlb35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/06/2008, 19h02
  2. Pourquoi mon frame ne fonctionne pas sur Safari 3.0.4?
    Par joecool2005 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 17h36
  3. [MySQL] Mon code ne fonctionne pas correctement
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/02/2007, 13h27
  4. Réponses: 1
    Dernier message: 30/08/2006, 19h00
  5. [VB.Net/DataReader] Pourquoi mon ExecuteReader ne fonctionne pas ?
    Par emeraudes dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2006, 13h38

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