Aide concernant DataViewSetting.RowFilter [Résolu]

Signaler
Messages postés
26
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2007
-
Messages postés
15
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
18 juillet 2007
-
Bonjour à tous,

Désolé je ne savais pas mettre dans quel thème ma question

Je suis Newbie en C#

Voici une aprtie du code en simple filtre (un seul champ filtré)

string newFilter = string.Empty;           

             if(!this.tbDesignation.Text.Equals(string.Empty))
            {           
                newFilter += "DESIGNATION like '%" + getFilterValue(this.tbDesignation.Text) + "%'";               
            }
            rechercheView.RowFilter = newFilter;

tbDesignation est le textbox où il y a la valeur à filtrer et DESIGNATION est le champ à filtrer

Actuellement mon filtre simple marche très bien mais dans une autre page je dois faire un double filtre
il y a tbCode et tbLibelle qui sont les deux textbox où sont présentes les valeurs à filtrer dans les champs LIBELLE et CODE (je vous laisse deviner quelle textbox filtre quel champ )

Pourriez vous m'aider à réaliser ce double filtrage. J'ai une erreur qui apparait. J'ai fait un truc de ce style qui ne marche pas :

if(!this.tbCode.Text.Equals(string.Empty)&& !this.tbLibelle.Text.Equals(string.Empty))
                    {           
                        newFilter += "LIBELLE like '%" + getFilterValue(this.tbLibelle.Text) + "%'";
                        newFilter += "CODE like '%" + getFilterValue(this.tbCode.Text) + "%'";
                    }
 incconuView.RowFilter = newFilter;

Au secours

Merci d'avance

     Arnaud

4 réponses

Messages postés
26
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
28 novembre 2007

f(!this.tbCode.Text.Equals(string.Empty)&& !this.tbLibelle.Text.Equals(string.Empty))
                    {           
                        newFilter += "LIBELLE like '%" + getFilterValue(this.tbLibelle.Text) + "%'";
                       



newFilter + = " AND ";





                        newFilter += "CODE like '%" + getFilterValue(this.tbCode.Text) + "%'";
                    }
 incconuView.RowFilter = newFilter;

Tout simplement
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

Reste aussi à remplacer la concaténation de valeurs par des requêtes paramétrées, histoire de limiter les problèmes d'injection SQL.
http://msdn2.microsoft.com/fr-fr/library/hdb58b2f(VS.80).aspx

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Hum non, je me suis fait avoir, on parle du filtre sur le DataView, pas d'une requête à part entière...
Cependant pense quand même à vérifier un minimum la saisie de l'utilisateur au lieu d'injecter directement la valeur dans le filtre.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
15
Date d'inscription
jeudi 30 décembre 2004
Statut
Membre
Dernière intervention
18 juillet 2007

salut...
moi aussi j'ai un probléme de filtre dans mon application ,le code que tu as posté m'a aidé à mieux comprendre comment utiliser les filtres,et j'utilise d'ailleurs le meme code dans mon applictaion;
mais la fonction

getFilterValue(this.tbDesignation.Text) ,je ne sais pas à quoi ça sert ..
peut tu me donner quelques infos.
 merci