方法 : DataTable の特定の行を探す
更新 : 2007 年 11 月
データを利用するアプリケーションのほとんどは、ある種の条件を満たす特定のレコードにアクセスする必要があります。データセットで特定の行を見つけるために、DataRowCollection オブジェクトの Find メソッドを呼び出すことができます。主キーがある場合は DataRow オブジェクトが返されます。主キーが見つからない場合は null 値が返されます。
主キー値を持つ行の検索
型指定されたデータセットの行を主キー値で検索するには
テーブルの主キーを使用する厳密に型指定された FindBy メソッドを呼び出して行を見つけます。
次の例では、CustomerID 列が Customers テーブルの主キーであるため、生成される FindBy メソッドは FindByCustomerID です。生成された FindBy メソッドを使用して、特定の DataRow を変数に代入する方法を次の例に示します。
Dim customersRow As NorthwindDataSet.CustomersRow customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
NorthwindDataSet.CustomersRow customersRow = northwindDataSet1.Customers.FindByCustomerID("ALFKI");
型指定されていないデータセットの行を主キー値で検索するには
DataRowCollection コレクションの Find メソッドを呼び出し、主キーをパラメータとして渡します。
foundRow という新しい行を宣言し、Find メソッドの戻り値を代入する方法を次の例に示します。主キーが見つかった場合は、列インデックス 1 の内容がメッセージ ボックスに表示されます。
Dim s As String = "primaryKeyValue" Dim foundRow As DataRow = DataSet1.Tables("AnyTable").Rows.Find(s) If foundRow IsNot Nothing Then MsgBox(foundRow(1).ToString()) Else MsgBox("A row with the primary key of " & s & " could not be found") End If
string s = "primaryKeyValue"; DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s); if (foundRow != null) { MessageBox.Show(foundRow[1].ToString()); } else { MessageBox.Show("A row with the primary key of " + s + " could not be found"); }
列の値による行の検索
任意の列の値で行を検索するには
データ テーブルは、Select メソッドに渡される式に基づいて DataRow の配列を返す Select メソッドで作成されます。有効な式を作成する方法の詳細については、Expression プロパティについてのページの「式の構文」のセクションを参照してください。
特定の行を見つけるために、DataTable の Select メソッドを使用する方法を次の例に示します。
Dim foundRows() As Data.DataRow foundRows = DataSet1.Tables("Customers").Select("CompanyName Like 'A%'")
DataRow[] foundRows; foundRows = dataSet1.Tables["Customers"].Select("CompanyName Like 'A%'");