Как сделать фильтр C # DataTable - PullRequest
14 голосов
/ 29 июля 2010

my datatable;

    dtData

    ID | ID2
    --------
    1  |  2
    1  |  3


dtData.Select("ID = 1"); one more rows;

я хочу строку "ID = 1 и ID2 = 3", как сделать?

Ответы [ 6 ]

30 голосов
/ 29 июля 2010

Вы имеете в виду, как это?:

dtData.Select("ID=1 AND ID2=3");
12 голосов
/ 29 июля 2010

Хорошо, вот как я делаю такие вещи ...

    GridFieldDAO dao = new GridFieldDAO();
    //Load My DataTable
    DataTable dt = dao.getDT();
    //Get My rows based off selection criteria
    DataRow[] drs = dt.Select("(detailID = 1) AND (detailTypeID = 2)");
    //make a new "results" datatable via clone to keep structure
    DataTable dt2 = dt.Clone();
    //Import the Rows
    foreach (DataRow d in drs)
    {
        dt2.ImportRow(d);
    }
    //Bind to my new DataTable and it will only show rows based off selection 
    //criteria
    myGrid.DataSource = dt2;
    myGrid.DataBind();

Обратите внимание, в моем выборе () я поместил критерии в паренах между И и ИЛИ

Надеюсь, это поможет!Майк V

6 голосов
/ 10 декабря 2012

Лучше используйте это:

GridFieldDAO dao = new GridFieldDAO();
//Load My DataTable
DataTable dt = dao.getDT();
//Get My rows based off selection criteria and copy them directly to datatable
DataTable dt2 = dt.Select("(detailID = 1) AND (detailTypeID = 2)").CopyToDataTable();
2 голосов
/ 09 ноября 2015
DataTable dt2 = dt.Select("ID = 1").CopyToDataTable;

убедитесь, что в dt есть строки

1 голос
/ 27 октября 2016
DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable; 
0 голосов
/ 28 мая 2014

Отличный пример и очень полезный.Хотелось добавить одну вещь - если вам нужно выделить строку, используйте что-то вроде:

DataTable dt2 = dt.Select("state = 'FL' "); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...