投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/9/8 16:59:33
掲示板の IMAGE タグで https プロトコルをサポートして頂けないでしょうか。 > るきおさん


> BindingSourceはTableBindingSourceと一緒なのでしょうか?
もしかして、【型名】と【フィールド変数名】を混同していませんか?

恐らくは System.Windows.Forms.BindingSource クラスのインスタンスの Name プロパティに
"TableBindingSource" という名前が付けられている状態だと思います。

System.Windows.Forms.TextBox クラスのインスタンスの Name プロパティに
"TextBox1" や "TextBox2" といった名前が付けられるのと同じように。




> TableBindingSource.Filter = strText
> みたいな感じでいいのでしょうか?(ハンドルされてない例外が出てきました)
いいえ。SQL でいうところの WHERE 句に書く問い合わせ式が必要です。

先ほどは "数学<=40 OR 英語<=40" という文字列を例に挙げましたが、この場合、
DataTable 上に "数学" 列と "英語" 列があり、かつそれらが数値型であることを想定しています。

Filter プロパティに設定できる文字列は、DataColumn の Expression プロパティに
指定できる内容に準じます。たとえば LIKE 検索なども可能です。

具体的にな構文については、下記を参考にしてみてください。
(翻訳ミスで構文が崩れている箇所があるので、英語版も併記しておきます)
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datacolumn.expression?WT.mc_id=DT-MVP-8907&view=netframework-4.8
https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.expression?WT.mc_id=DT-MVP-8907&view=netframework-4.8


あるいは、DataTable の Select メソッドを使って、DataRow の配列を得る方法もあります。
使い方はほぼ同じですが、抽出結果の DataRow 配列を DataGridView 等に表示したいなら、
そのための再割り当て等は、自分で行う必要があります。

このほか、LINQ to DataSet で問い合わせるといった方法があります。
https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/creating-a-datatable-from-a-query-linq-to-dataset?WT.mc_id=DT-MVP-8907