方法 : DataTable の特定の行を探す
データを利用するアプリケーションのほとんどは、ある種の条件を満たす特定のレコードにアクセスする必要があります。 データセットで特定の行を見つけるために、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[0].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%'");
参照
関連項目
概念
Visual Studio でのデータへのコントロールのバインド