RECHERCHE DE DONNEES DANS UN DATAGRIDVIEW LIEE A UNE BASE

Signaler
Messages postés
5
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
8 janvier 2010
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
slt tt le monde! j'ai un datagridview ki est connecté à une table MATERIEL et affiche les données de cette table.
Ce que je veux faire c'est effectuer une recherche dans ce gridview.
Dans ma forme, il y a un textbox qui sert à saisir ce que l'on recherche. et en cliquant sur un bouton RECHERCHER, jveu faire en sorte que seules les données LIKE textbox s'affichent dans le gridview.Pouvez-vous me donner un exple de code que je pourrai mettre dans mon bouton? merci

3 réponses

Messages postés
15
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010

Tu fais un compteur entier qui parcours toutes les ligne du GridView en testant en même temps si la valeur de cette case = la valeur du textbox si oui tu change la couleur de cette case, sinon tu fais rien.

Public Void Recherche(DataGridView GridView, TextBox TB)
{
for (int i=0, i<= GridView.Row.Count, i++)
{
if (GridView.row[i].Value==TB.text)
{
GridView.row[i].BackColor = Color.Blue;
}
else
i+=1;
}
}

Je me rappel pas des propriétés d'un DataGridView et les Color aussi. Enfin c'est l'idée qui compte.

Faut toujours demander
Messages postés
15
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
27 janvier 2010

Supprime le ELSE et le i+=1;, je me suis trompé

Faut toujours demander
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
le plus simple c'est de filtrer la datasource.

En gros, tu bindes la DataGrid sur une DataView et non sur une DataTable.

Exemple :
DataTable maDataTable;
// on part du principe que la DataTable est rempli

DataView view;

if (string.IsNullOrEmpty(maTextBox.Text)) {
   view = maDataTable.DefaultView;
} else {
   view = new DataView(maDataTable, "monChamp like '" + maTextBox.Text + "'", string.Empty);
}

maDataGrid.DataSource = view;
maDataGrid.Bind();




Sébastien FERRAND
Lead Developpeur
Microsoft Visual C# MVP 2005 - 2009