web-dev-qa-db-ja.com

DataTableで値を見つける

行ごとの操作を行わずにC#でDataTableの値を見つける方法はありますか?

値はデータテーブルのセル(カンマで区切られたrow [columnName] .valueの部分文字列)の一部である場合があり、値は行のいずれかの列に存在する場合があります。

31
Dhana

DataTableまたはDataSetオブジェクトには、パラメーターとして渡されたクエリに基づいて結果のDataRow配列を返すSelectメソッドがあります。

要件を検討すると、この機能を実現するには、filterexpressionを多少一般化する必要があります。

myDataTable.Select("columnName1 like '%" + value + "%'");
55
Andy Rose

次のような列で行をフィルタリングすることができます:

DataRow[] filteredRows = 
  datatable.Select(string.Format("{0} LIKE '%{1}%'", columnName, value));
14
Canavar

私の知る限り、すべての列を検索するための組み込みのものはありません。 Findは、主キーに対してのみ使用できます。 Selectには指定された列が必要です。おそらくLINQを使用できますが、最終的にこれは同じループを実行します。おそらく自分で展開するだけですか?少なくとも読みやすいでしょう。

8
Marc Gravell