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行目でレコードを表示しています。