C#を使用して複数の列値でデータテーブルをフィルタリングする方法

スリヤカビタ

WebページにtxtFirstName(TextBox)、txtDisplayName(TextBox)、txtFromDate(TextBox)、txtToDate(TextBox)、btnFilter(button)のような5つのコントロールがあります。また、DataTableを使用してGridViewの同じページにいくつかのデータをバインドしています。

次に、上記で説明したこれらの検索パラメーターコントロールを使用して、DataTableをフィルター処理します。

フィルター条件は、

  • 満たされたコントロールと空のコントロールについてはわかりません。したがって、コントロールに入力された入力に基づいて、DataTableをフィルタリングする必要があります。コントロール値が空の場合、Datatableをフィルタリングすることを許可しないでください。

  • LIKE演算子またはString.Startswith()でデータ値をフィルタリングする必要があります

  • txtFromDateとtxtToDateがいっぱいになっている場合は、範囲間のデータ値をフィルタリングする必要があります。

  • すべてのコントロールが満たされている場合は、日付範囲のすべてのフィルターパラメーターに基づいてデータテーブルをフィルター処理する必要があります。

このフィルタリングをどのように実現しますか?これをうまく実装するのを手伝ってください。LINQまたはLamda式でこれを行うことはできますか?もしそうなら、私に提案を教えてください。

私は2つの方法を試しましたが、機能しません。

最初の方法:

var test=dtActions.AsEnumerable().Where(z=>
    !string.IsNullOrEmpty(txtFirstName.Text)? z.Field<string>("FirstName").ToUpper().StartsWith(txtFirstName.Text.ToUpper()) &&
    !string.IsNullOrEmpty(txtDisplayName.Text)?z.Field<string>("DisplayName").ToUpper().StartsWith(txtDisplayName.Text.ToUpper()) &&
    !string.IsNullOrEmpty(txtCreatedBy.Text)?z.Field<string>("CreatedBy").ToUpper().StartsWith(txtCreatedBy.Text.ToUpper());

DateTimeテキストボックス間でデータを取得する考えがありません。

2番目の方法:

var results = from dataRow in dtActions.AsEnumerable()
    where dataRow.Field<string>("FirstName").ToUpper().StartsWith(txtFirstName.Text.ToUpper()) ||
        dataRow.Field<string>("DisplayName").ToUpper().StartsWith(txtFirstName.Text.ToUpper()) ||  
        ((dataRow.Field<DateTime>("CreatedDate")>= Convert.ToDateTime(txtFromDate.Text)) && (dataRow.Field<DateTime>("CreatedDate")<= Convert.ToDateTime(txtToDate.Text)))
    select dataRow;
Durgesh chaudhary

次のコードは機能します:

var test = dtActions.AsEnumerable().Where(z =>
    (string.IsNullOrEmpty(txtFirstName.Text) ? true : z.Field<string>("FirstName").ToUpper().StartsWith(txtFirstName.Text.ToUpper())) &&
    (string.IsNullOrEmpty(txtDisplayName.Text) ? true : z.Field<string>("DisplayName").ToUpper().StartsWith(txtDisplayName.Text.ToUpper())) &&
    (string.IsNullOrEmpty(txtCreatedBy.Text) ? true : z.Field<string>("CreatedBy").ToUpper().StartsWith(txtCreatedBy.Text.ToUpper()))
);

2番目のクエリ

var results = from dataRow in dtActions.AsEnumerable()
        where (string.IsNullOrEmpty(txtFirstName.Text) ? true : dataRow.Field<string>("FirstName").ToUpper().StartsWith(txtFirstName.Text.ToUpper())) ||
            (string.IsNullOrEmpty(txtDisplayName.Text) ? true : dataRow.Field<string>("DisplayName").ToUpper().StartsWith(txtDisplayName.Text.ToUpper())) ||
            (string.IsNullOrEmpty(txtCreatedBy.Text) ? true : dataRow.Field<string>("CreatedBy").ToUpper().StartsWith(txtCreatedBy.Text.ToUpper())) ||
            (dataRow.Field<DateTime>("CreatedDate") >= Convert.ToDateTime(txtFromDate.Text) && (dataRow.Field<DateTime>("CreatedDate") <= Convert.ToDateTime(txtToDate.Text)))
        select dataRow;

コードが機能しない理由は、条件演算子が正しくないためです。文字列がnullまたは空の場合はtrueを返し、そうでない場合はフィールド値を確認します。

ToList()最後にリストが必要なToArray()場合、または配列としてリストが必要な場合に適用します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列c#の値でデータテーブルをフィルタリングする

分類Dev

Pythonのデータテーブルを使用して日付でフィルタリングする方法

分類Dev

複数の値を使用して配列フィールドでフィルタリングするノードを検索する方法

分類Dev

複数のコンポーネントを使用してデータをフィルタリングする方法

分類Dev

C#:フィールドメソッドを使用したデータテーブルの複数の列によるLINQクエリのグループ化

分類Dev

RShinyで複数の入力を使用するデータリアクティブフィルタリング

分類Dev

ブール論理を使用して1つのデータフレームの複数の列をマージおよびフィルタリングする

分類Dev

C#WPFのデータテーブルを使用してデータグリッドをフィルタリングする正しい方法

分類Dev

1つの列の複数の値を使用してデータフレーム内の値をフィルタリングする

分類Dev

jQueryを使用してデータテーブルの年月をフィルタリングする方法は?

分類Dev

anglejsを使用してテーブル上のデータをフィルタリングする方法

分類Dev

Spring JPAリポジトリを使用して複数のフィールドでエンティティをフィルタリングする方法は?

分類Dev

複数のコンボボックスを使用してデータをフィルタリングする方法

分類Dev

複数のコンボボックスを使用してデータをフィルタリングする方法

分類Dev

Pysparkの複数の列で複数の条件を使用してSparkデータフレームをフィルタリングする

分類Dev

パンダのデータフレーム行を複数の列値でフィルタリングする

分類Dev

テーブル内の複数の列をフィルタリングする

分類Dev

特定の列の値を使用してテーブルをフィルタリングする

分類Dev

フォームを使用してmysql / phpテーブルデータをフィルタリングする方法

分類Dev

別のテーブルの値を使用してテーブルをフィルタリングする

分類Dev

2番目のテーブルMYSQLの複数の行でデータをフィルタリングする

分類Dev

Sequelize、MySQL-JSON列値を使用してテーブル内の行をフィルタリングする

分類Dev

複数のデータ行でOracleSQLを使用して行をフィルタリングする

分類Dev

mysqlで複数のAND演算子を使用してデータをフィルタリングする

分類Dev

javascriptを使用して値と色を使用してテーブルをフィルタリングする方法

分類Dev

複数の列でパンダデータフレームをフィルタリングする方法

分類Dev

jqueryを使用してボタンクリックでテーブル内のデータをフィルタリングする方法

分類Dev

TextBox(WPF C#)を使用してデータグリッド値をフィルター処理する方法

分類Dev

複数のIDタイプを含む行でテーブルをフィルタリングする方法

Related 関連記事

  1. 1

    配列c#の値でデータテーブルをフィルタリングする

  2. 2

    Pythonのデータテーブルを使用して日付でフィルタリングする方法

  3. 3

    複数の値を使用して配列フィールドでフィルタリングするノードを検索する方法

  4. 4

    複数のコンポーネントを使用してデータをフィルタリングする方法

  5. 5

    C#:フィールドメソッドを使用したデータテーブルの複数の列によるLINQクエリのグループ化

  6. 6

    RShinyで複数の入力を使用するデータリアクティブフィルタリング

  7. 7

    ブール論理を使用して1つのデータフレームの複数の列をマージおよびフィルタリングする

  8. 8

    C#WPFのデータテーブルを使用してデータグリッドをフィルタリングする正しい方法

  9. 9

    1つの列の複数の値を使用してデータフレーム内の値をフィルタリングする

  10. 10

    jQueryを使用してデータテーブルの年月をフィルタリングする方法は?

  11. 11

    anglejsを使用してテーブル上のデータをフィルタリングする方法

  12. 12

    Spring JPAリポジトリを使用して複数のフィールドでエンティティをフィルタリングする方法は?

  13. 13

    複数のコンボボックスを使用してデータをフィルタリングする方法

  14. 14

    複数のコンボボックスを使用してデータをフィルタリングする方法

  15. 15

    Pysparkの複数の列で複数の条件を使用してSparkデータフレームをフィルタリングする

  16. 16

    パンダのデータフレーム行を複数の列値でフィルタリングする

  17. 17

    テーブル内の複数の列をフィルタリングする

  18. 18

    特定の列の値を使用してテーブルをフィルタリングする

  19. 19

    フォームを使用してmysql / phpテーブルデータをフィルタリングする方法

  20. 20

    別のテーブルの値を使用してテーブルをフィルタリングする

  21. 21

    2番目のテーブルMYSQLの複数の行でデータをフィルタリングする

  22. 22

    Sequelize、MySQL-JSON列値を使用してテーブル内の行をフィルタリングする

  23. 23

    複数のデータ行でOracleSQLを使用して行をフィルタリングする

  24. 24

    mysqlで複数のAND演算子を使用してデータをフィルタリングする

  25. 25

    javascriptを使用して値と色を使用してテーブルをフィルタリングする方法

  26. 26

    複数の列でパンダデータフレームをフィルタリングする方法

  27. 27

    jqueryを使用してボタンクリックでテーブル内のデータをフィルタリングする方法

  28. 28

    TextBox(WPF C#)を使用してデータグリッド値をフィルター処理する方法

  29. 29

    複数のIDタイプを含む行でテーブルをフィルタリングする方法

ホットタグ

アーカイブ