web-dev-qa-db-fra.com

Méthode Selectatable ()

J'ai un Datagridview et le Data Source est dtCustomer Je veux juste filtrer le contenu de la vue grille en fonction d'un texte de recherche. Itried le code suivant

DataTable dtSearch =  dtCustomer;
dtSearch.Select("cust_Name like '" + txtSearch.Text + "%'");
grvCustomer.DataSource = dtSearch;

Mais ça ne fonctionne pas. Si un organisme connaît la solution, veuillez la partager.

11
Nithesh

Essaye ça:

dtSearch.DefaultView.RowFilter = "cust_Name like '" + txtSearch.Text + "%'";  

Et vérifiez tout ce qu'il y a de l'espace à supprimer en coupant le texte.

12
Boomer

La valeur de retour pour DataTable.Select est un tableau DataRow []. Il renvoie une liste de DataRows correspondants. Votre code ne fait rien avec ces lignes pour le moment.

Vous pouvez configurer un DataView avec un filtre et définir le DataSource de la grille sur le DataView:

DataView dv = new DataView(dtSearch);
dv.RowFilter = "...";
grvCustomer.DataSource = dv;
8
Paul Williams

Ou essayez ceci;

dataGridView.Datasource = datatable.Select("....").CopyToDataTable()
3
Delog

Vous pouvez essayer d'utiliser un DataView (code non testé) -

DataView dv = new DataView(dtSearch);
dv.RowFilter = "cust_Name like '" + txtSearch.Text + "%'";
grvCustomer.DataSource = dv;
3
ipr101
dtCustomer.Rows.Cast<DataRow>().Select(dr => (string)dr["cust_Name"].Startswith("zzz")).ToList()
2
Jayg

Vous pouvez faire quelque chose comme ça.

DataView dv1 = dtDefault.DefaultView; 
dv1.RowFilter = "CusGroupId=1 and CustomerCode LIKE '"+txtCustomer.Text +"%'";  
DataTable dt=dv1.ToTable();
2
Example

DataTable.Select renvoie un tableau de lignes, mais vous liez la table de données entière et non les lignes filtrées. utilisez cette méthode ou DataView

DataTable dtSearch =  dtCustomer;
var filter = dtSearch.Select("cust_Name like '" + txtSearch.Text + "%'");
grvCustomer.DataSource = filter.ToList();
1
hungryMind

Je pense que c'est ce que vous cherchez?

//DataTable dtSearch =  dtCustomer;
//dtSearch.Select("cust_Name like '" + txtSearch.Text + "%'");


grvCustomer.DataSource = dtCustomer.Select("cust_Name like '" + txtSearch.Text + "%'");

Et quand vous voulez revenir aux données d'origine

grvCustomer.DataSource = dtCustomer;
0
Jason Politis