Метод выбора данных () - PullRequest
       8

Метод выбора данных ()

11 голосов
/ 20 октября 2011

У меня есть Datagridview, а Data Source - dtCustomer Я просто хочу отфильтровать содержимое вида сетки на основе текста поиска.Itried следующий код

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

Но это не работает.Если кто-то знает решение, пожалуйста, поделитесь.

Ответы [ 8 ]

12 голосов
/ 20 октября 2011

Попробуйте это:

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

И проверьте, есть ли место для удаления, обрезав текст.

8 голосов
/ 20 октября 2011

Возвращаемое значение для DataTable.Select является массивом DataRow []. Возвращает список совпадающих DataRows. В данный момент ваш код ничего не делает с этими строками.

Вы можете настроить DataView с фильтром и установить источник данных сетки в DataView:

DataView dv = new DataView(dtSearch);
dv.RowFilter = "...";
grvCustomer.DataSource = dv;
3 голосов
/ 20 октября 2011

Вы можете попробовать использовать DataView (код не тестировался) -

DataView dv = new DataView(dtSearch);
dv.RowFilter = "cust_Name like '" + txtSearch.Text + "%'";
grvCustomer.DataSource = dv;
2 голосов
/ 06 ноября 2017

Вы можете сделать что-то вроде этого.

DataView dv1 = dtDefault.DefaultView; 
dv1.RowFilter = "CusGroupId=1 and CustomerCode LIKE '"+txtCustomer.Text +"%'";  
DataTable dt=dv1.ToTable();
2 голосов
/ 22 октября 2015
dtCustomer.Rows.Cast<DataRow>().Select(dr => (string)dr["cust_Name"].Startswith("zzz")).ToList()
2 голосов
/ 04 ноября 2011

Или попробуйте это;

dataGridView.Datasource = datatable.Select("....").CopyToDataTable()
1 голос
/ 20 октября 2011

DataTable.Select возвращает массив строк, но вы связываете всю таблицу данных, а не отфильтрованные строки. используйте этот способ или DataView

DataTable dtSearch =  dtCustomer;
var filter = dtSearch.Select("cust_Name like '" + txtSearch.Text + "%'");
grvCustomer.DataSource = filter.ToList();
0 голосов
/ 09 апреля 2013

Я думаю, это то, что вы ищете?

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


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

А когда вы хотите вернуться к исходным данным

grvCustomer.DataSource = dtCustomer;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...