DataSource(DataTable)を検索する
- 2010.01.13 Wednesday
- 12:55
たとえば、DataGridViewにcsvファイルなどのデータを書き出したとする。
Rows.Addでやってしまうとソートやら検索ができないので、
とか言う感じでデータをDataTable(DataSource)に落とし込む。
で、データベースを読み込んできた場合は、SQL分や
BindSource.Filter = "条件"という感じで検索できるのだが、
ただのCSVやTXT(テキスト)データを読み込んだ場合はどうやってやるのだろう?と
いろいろ試行錯誤してみる。
このやり方が正しいかどうかはわからないが、こんな感じで解決
FindSourceの中身は条件式になります。
たとえば、"データ1"というColumnがあって、検索したいデータが"あいうえお"なら
といった感じ。
細かいことはDataView.RowFilterのリファレンスなどを参照してください。
で、その条件式をDataView.RowFilterに入れてあげれば検索条件に一致したものだけ
DataGridViewに表示される仕組み、
もし一致しない場合は、DataViewのCountが0になる。
あと、検索条件を解除したい場合はNullを入れてあげればよい
上で言うところの、vData.RowFilter = Nothingがそれ
他にも方法はあると思いますが、私なりの解決方法です。
ちなみに、ソート解除は以前書いたこちらをどうぞ
追記
例えば、先頭行だけ非表示にしたいなどを考えて、
とするとエラーが発生する。
現在のカレンシー マネージャの位置に関連付けられた行を非表示にすることはできません。
これは、DataSourceに何も入っていないデータならば可能だが、
上のようにDataTableなどのソースが入っている場合は、DataGridViewではなく、
ソース側(DataTableなど)で操作しなければならないためである。
どうしても非表示にしたい場合は、RowFilterで条件を設定するしか方法はないようだ。
参考URL
DataGridViewのエラー
関連投稿
検索中(DataView.RowFilterしている)のDataTableからさらに検索する 追記:検索中に別の検索をする
DataViewのデータ(抽出結果)からDataTableの位置を検索
DataGridViewのソート解除
DataViewの検索フィルタ〜VB2008
Rows.Addでやってしまうとソートやら検索ができないので、
|
とか言う感じでデータをDataTable(DataSource)に落とし込む。
で、データベースを読み込んできた場合は、SQL分や
BindSource.Filter = "条件"という感じで検索できるのだが、
ただのCSVやTXT(テキスト)データを読み込んだ場合はどうやってやるのだろう?と
いろいろ試行錯誤してみる。
このやり方が正しいかどうかはわからないが、こんな感じで解決
|
FindSourceの中身は条件式になります。
たとえば、"データ1"というColumnがあって、検索したいデータが"あいうえお"なら
|
といった感じ。
細かいことはDataView.RowFilterのリファレンスなどを参照してください。
で、その条件式をDataView.RowFilterに入れてあげれば検索条件に一致したものだけ
DataGridViewに表示される仕組み、
もし一致しない場合は、DataViewのCountが0になる。
あと、検索条件を解除したい場合はNullを入れてあげればよい
上で言うところの、vData.RowFilter = Nothingがそれ
他にも方法はあると思いますが、私なりの解決方法です。
ちなみに、ソート解除は以前書いたこちらをどうぞ
追記
例えば、先頭行だけ非表示にしたいなどを考えて、
|
とするとエラーが発生する。

現在のカレンシー マネージャの位置に関連付けられた行を非表示にすることはできません。
これは、DataSourceに何も入っていないデータならば可能だが、
上のようにDataTableなどのソースが入っている場合は、DataGridViewではなく、
ソース側(DataTableなど)で操作しなければならないためである。
どうしても非表示にしたい場合は、RowFilterで条件を設定するしか方法はないようだ。
参考URL
DataGridViewのエラー
関連投稿
検索中(DataView.RowFilterしている)のDataTableからさらに検索する 追記:検索中に別の検索をする
DataViewのデータ(抽出結果)からDataTableの位置を検索
DataGridViewのソート解除
DataViewの検索フィルタ〜VB2008