DataTableオブジェクトに格納されているデータに対してフィルターをかけることができます。この機能により、特定の条件を満たす行のみを取り出すということができます。その時に利用するのがSelectメソッドです。引数に条件を指定します。結果としてDataRowオブジェクトの配列が返ってきます。
例えば、Usersテーブルから「佐藤」という情報を持ったレコードを抽出するフィルターは次のように指定します。
[DataTable].Select("name = '佐藤'");
SQL文でのWHERE句で指定する条件をSelectメソッドの引数としてセットすることで、フィルターをかけることができます。
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | コンソール アプリケーション |
---|---|
プロジェクト名 | FilterTest |
○ 作成の準備
「DataRowTest」プロジェクトを修正して作成しましょう。DataRowTestフォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。
○ プログラム
Mainメソッドを次のように修正してください。
Module1.vb
○ 実行結果
表示したい名前:佐藤
検索結果
Id : UserName : Password : Name
1 : sato : spass : 佐藤
--------------------------------------------------------------------------------------------------------------------
表示したい名前:渡邊
検索結果
見つかりませんでした。
○ 解説
29行目では、入力した氏名をもとにフィルターをSelectメソッドの引数として指定しています。フィルタリングの結果は1件でもDataRow配列として帰ってくるので、配列変数drlistを用意しています。
フィルター条件によっては複数件結果が取得できるので、37~39行目でループ処理を指定しています。38行目でレコードを表示しています。