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 :

[C#] méthodes pour filtrer un datagridview ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut [C#] méthodes pour filtrer un datagridview ?
    Bonjour,

    mon application remplit un datagridview via un datatable qui ajoute le contenu de variables que je renseigne au moyen d'objets sqldatareader préalables.
    ça marche très bien , mon datagrid est rempli mais je voudrais donner la possibilité aux utilisateurs de pouvoir filtrer sur une ou plusieurs colonnes de mon datagrid pour ne renvoyer que les données répondant aux valeurs/critères choisies, un peu à la manière d'excel.

    est ce qu'il existe des méthodes ou propriété pour ça , par le datatable ou le datagridview ? je sèche un peu, toutes les idées/pistes seront les bienvenues

    merci

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    DataTable.Select. Ca te retourne un tableau de DataRow.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut Tu as une URL pour avoir un exemple ? j'ai des pb pour implémenter
    merci pour la méthode , cependant j'ai essayé pas mal de façon pour l'utiliser
    et pas de résultat et peu d'exemple sur msdn
    si jamais tu as un exemple ce serait super.
    pour info voici mon dernier essai:
    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
     
    //dt étant mon datatable préalablement construit et qui remplit bien mon 
    // datagrid
    string expression = "Nom = 'ADOUE'";
     
     DataRow[] foundRows;
     
    foundRows = dt.Select(expression);
     
     
                                    if (foundRows != null)
                                    {
     
                                        dt.Rows.Clear();
                                        for (int i = 0; i < foundRows.Length; i++)
                                        {
                                            dt.Rows.Add(foundRows);
                                            MessageBox.Show("Ajoût d'une ligne trouvée pour le critère");
                                        }
                                    }

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut Exemple de code qui marche pour filtrer
    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
     
    //dt est le nom de ma première datatable qui contient les résultats complets  
    //de ma requête
     
    string expression = "Nom = 'ADOUE'";
                                    DataTable dt2 = dt.Clone();
                                    dt2.Rows.Clear();
     
     
     
                                    DataRow[] foundRows;
     
                                    // Use the Select method to find all rows matching the filter.
                                    foundRows = dt.Select(expression);
     
     
     
     
                                    if (foundRows != null)
                                    {
     
     
     
                                        foreach (DataRow row in foundRows)
                                        {
                                            //dt2.Rows.Add(row);
                                            dt2.ImportRow(row);
                                            MessageBox.Show("Ajoût d'une ligne trouvée pour le critère");
                                        }
                                        dataGridView1.DataSource = dt2;
                                        dataGridView1.Refresh();
     
                                    }

Discussions similaires

  1. [WD20] Le choix de la bonne méthode pour filtrer des données
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 20/02/2015, 21h04
  2. Réponses: 3
    Dernier message: 24/06/2004, 11h23
  3. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41
  4. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 10h35
  5. Fonction/méthode pour obtenir l'IP de la machine
    Par sirex007 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 10/04/2003, 14h36

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