web-dev-qa-db-ja.com

C#DataTableフィルターの作成方法

私のデータテーブル;

    dtData

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


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

「ID = 1およびID2 = 3」の行を作成する方法を教えてください。

14
Chicharito

このような意味ですか?:

dtData.Select("ID=1 AND ID2=3");
30

さて、ここで私はそのようなことをする方法です...

    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();

Select()で、条件を括弧に入れて[〜#〜] and [〜#〜][〜#〜] or [〜#〜]の間に注意してください。

お役に立てれば!マイクV

12
MDV2000

これを使うほうがいい:

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();
6
qlayer
DataTable dt2 = dt.Select("ID = 1").CopyToDataTable;

dtに行があることを確認してください

2
Edwin Ikechukwu

ここでは、フィルタリングによって特定の行を選択しながら、LinqのCopyToDataTableメソッドを使用して、コンテンツを別のDataTableにコピーできます。

DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable; 
1

素晴らしい例で、とても役に立ちます。 1つ追加したい-文字列を選択する必要がある場合は、次のようなものを使用します。

DataTable dt2 = dt.Select("state = 'FL' "); 
0
user3681298