如何使用Typed DataTable.Rows.Find(键作为对象)来查找具有复合键的行?

时间:2012-01-07 05:59:30

标签: vb.net datatable find datarowcollection

我有TypedDataTable名为CamerasDT,其复合主键为GroupIdCameraId。我想使用TypedDataTable.Rows.Find(key as object)GroupIdCameraId返回特定行。我似乎无法找到将主键发送到find函数的方法。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用Find方法的其中一个重载来传递与您要搜索的主键值对应的对象数组。

我链接的MSDN文章中的示例:

  

以下示例使用数组的值来查找特定的值   DataRow对象集合中的行。该方法假定a   DataTable存在三个主键列。创建后   值的数组,代码使用Find方法与数组   得到你想要的特定对象。

 Private Sub FindInMultiPKey(ByVal table As DataTable)
    ' 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."

    Dim foundRow As DataRow = table.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

在您的情况下,您将传递一个Object数组,其中包含要在GroupId和CameraId字段中搜索的值。