次の方法で共有


DataRowCollection.Find メソッド (Object )

指定した主キー値が格納されている行を取得します。

Overloads Public Function Find( _
   ByVal keys() As Object _) As DataRow
[C#]
public DataRow Find(object[] keys);
[C++]
public: DataRow* Find(Object* keys __gc[]);
[JScript]
public function Find(
   keys : Object[]) : DataRow;

パラメータ

  • keys
    検索する主キー値の配列。配列の型は Object です。

戻り値

指定した主キー値が格納されている DataRow オブジェクトの配列。指定した主キー値が DataRowCollection 内に存在しない場合は null 値。

例外

例外の種類 条件
IndexOutOfRangeException インデックス値に対応する行がありません。
MissingPrimaryKeyException このテーブルには主キーがありません。

解説

Find メソッドを使用するには、 DataRowCollection オブジェクトが属する DataTable オブジェクトに、主キー列として指定された列が 1 つ以上格納されている必要があります。 PrimaryKey 列を作成する方法、またはテーブルに複数の主キーが格納されている場合は DataColumn オブジェクトの配列を作成する方法の詳細については、 PrimaryKey プロパティのトピックを参照してください。

使用例

[Visual Basic, C#, C++] 配列の値を使用して、 DataRow オブジェクトのコレクション内の特定の行を検索する例を次に示します。このメソッドでは、 DataTable に 3 つの主キー列が格納されていると仮定されています。値の配列が作成されると、 Find メソッドがその配列で使用されて、特定の必要なオブジェクトが取得されます。

 
Private Sub FindInMultiPKey(ByVal myTable As DataTable)
   Dim foundRow As DataRow
   ' Create an array for the key values to find.
   Dim findTheseVals(2) As Object
   ' Set the values of the keys to find.
   findTheseVals(0) = "John"
   findTheseVals(1) = "Smith"
   findTheseVals(2) = "5 Main St."
   foundRow = myTable.Rows.Find(findTheseVals)
   ' Display column 1 of the found row.
   If Not (foundRow Is Nothing) Then
     Console.WriteLine(foundRow(1).ToString())
   End If
End Sub

[C#] 
private void FindInMultiPKey(DataTable myTable){
    DataRow foundRow;
    // Create an array for the key values to find.
    object[]findTheseVals = new object[3];
    // Set the values of the keys to find.
    findTheseVals[0] = "John";
    findTheseVals[1] = "Smith";
    findTheseVals[2] = "5 Main St.";
    foundRow = myTable.Rows.Find(findTheseVals);
    // Display column 1 of the found row.
    if(foundRow != null)
      Console.WriteLine(foundRow[1]);
 }

[C++] 
private:
void FindInMultiPKey(DataTable* myTable){
    DataRow* foundRow;
    // Create an array for the key values to find.
    Object* findTheseVals[] = new Object*[3];
    // Set the values of the keys to find.
    findTheseVals[0] = S"John";
    findTheseVals[1] = S"Smith";
    findTheseVals[2] = S"5 Main St.";
    foundRow = myTable->Rows->Find(findTheseVals);
    // Display column 1 of the found row.
    if(foundRow != 0)
      Console::WriteLine(foundRow->Item[1]);
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

DataRowCollection クラス | DataRowCollection メンバ | System.Data 名前空間 | DataRowCollection.Find オーバーロードの一覧 | DataTable | PrimaryKey | Contains