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 :

Recherche dans un DataGridView [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 97
    Par défaut Recherche dans un DataGridView
    Boujour, j'aimerais rechercher un chaine de caractère dans un dataGridView, j'ai pour l'instant trouver ceci mais cela ce regarde qu'à la première colonne de mon datagridview:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
      List<DataGridViewRow> records = (from DataGridViewRow row in  dataGridView1.Rows where row.Cells[i].Value.ToString().Equals("MaChaineRechercher") select row).ToList();
     
     
    }
    Comment faire pour scanner a la 2ème colonne qui s'apelle "Colonne2" on va dire ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Voilà une méthode qui renvoie toutes les cellules contenant le texte recherché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private static IEnumerable<DataGridViewCell>(DataGridView dgv, string searchText)
    {
            return
                from DataGridViewRow row in dgv.Rows
                from DataGridViewColumn column in dgv.Columns
                let cell = row.Cells[column.Index]
                where cell.Value != null && cell.Value.ToString().Contains(searchText)
                select cell;
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 97
    Par défaut
    Merci !
    [Débutant]

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    Tu parcours les colonnes jusqu'à l'index de la dernière ligne

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 97
    Par défaut
    j'ai un pb pour la recuperation de la valeur au format :
    IEnumerable<DataGridViewCell>
    Comment peut-on faire ceci pour recuperer la valeur rechercher ou juste un boolléen pour nous dire qu'il la trouver ??

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    SI tu l'as trouvé tu auras des éléments, sinon pas ...
    Suffit de contrôler avec un if

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par kevindeta Voir le message
    j'ai un pb pour la recuperation de la valeur au format :


    Comment peut-on faire ceci pour recuperer la valeur rechercher ou juste un boolléen pour nous dire qu'il la trouver ??
    Déjà mon code était foireux, il manquait le nom de la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private static IEnumerable<DataGridViewCell> FindCellsWithText(DataGridView dgv, string searchText)
    {
            return
                from DataGridViewRow row in dgv.Rows
                from DataGridViewColumn column in dgv.Columns
                let cell = row.Cells[column.Index]
                where cell.Value != null && cell.Value.ToString().Contains(searchText)
                select cell;
    }
    Ensuite il suffit de faire un foreach sur le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var results = FindCellsWithText(dataGridView1, "MaChaineRecherchée");
     
    foreach(DataGridViewCell cell in results)
    {
        ...
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 97
    Par défaut
    Merci bien, j'avais remarqué que le nom de la fonctionn'y été pas mais niveau conversion j'étais a coté de la plaque,pas beaucoup d'expérience du foreach...

    bref merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2014, 22h48
  2. Rechercher dans un DataGridView
    Par Fost1986 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/09/2010, 11h27
  3. Effectuer une recherche dans un datagridview
    Par Manbiz dans le forum C#
    Réponses: 0
    Dernier message: 07/05/2010, 12h53
  4. Loupe de recherche dans un datagridview
    Par amirad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/03/2009, 09h27
  5. Rechercher un élément dans un DataGridView
    Par vb dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/08/2007, 17h31

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