2012-01-07 2 views
0

J'ai un TypedDataTable appelé CamerasDT qui a une clé primaire composite de GroupId et CameraId. Je veux utiliser TypedDataTable.Rows.Find(key as object) pour renvoyer une ligne spécifique par GroupId et CameraId. Je ne semble pas être en mesure de trouver un moyen d'envoyer la clé primaire à la fonction de recherche. Toute aide est appréciée.Comment utiliser TypedDataTable.Rows.Find (clé en tant qu'objet) pour trouver une ligne qui a une clé composite?

Répondre

1

Utilisez l'une des surcharges de la méthode Find pour transmettre un tableau d'objets correspondant aux valeurs de clé primaire que vous recherchez.

l'exemple de l'article de MSDN I lié:

L'exemple suivant utilise les valeurs d'un tableau pour trouver un spécifique rangée dans une collection d'objets DataRow. La méthode suppose qu'un DataTable existe avec trois colonnes de clé primaire. Après avoir créé un tableau des valeurs, le code utilise la méthode Find avec le tableau pour obtenir l'objet particulier que vous souhaitez.

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 

Dans votre cas, vous passerais un tableau d'objets avec des valeurs à rechercher dans vos champs GroupId et CameraId.

+1

Merci, apprécié. Une petite question, je suppose que je devrais définir les clés primaires dans l'ordre où elles apparaissent dans la définition de la table, non? – mohsensajjadi

Questions connexes