Comment : trouver une ligne spécifique dans un DataTable

Mise à jour : novembre 2007

La plupart des applications qui utilisent des données ont besoin d'accéder à des enregistrements particuliers répondant à certains critères. Pour rechercher une ligne particulière dans un groupe de données, vous pouvez appeler la méthode Find de l'objet DataRowCollection. Si la clé primaire existe, un objet DataRow est retourné. Si elle est introuvable, une valeur null est retournée.

Recherche d'une ligne avec une valeur de clé primaire

Pour rechercher une ligne dans un groupe de données typé avec une valeur de clé primaire

  • Appelez la méthode FindBy fortement typée qui utilise la clé primaire de la table pour rechercher une ligne.

    Dans l'exemple suivant, la colonne CustomerID est la clé primaire de la table Customers. Par conséquent, la méthode FindBy générée est FindByCustomerID. Cet exemple illustre l'assignation d'un DataRow spécifique à une variable à l'aide de la méthode FindBy générée.

    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    

Pour rechercher une ligne dans un groupe de données non typé avec une valeur de clé primaire

  • Appelez la méthode Find d'une collection DataRowCollection, en passant la clé primaire en tant que paramètre.

    L'exemple suivant montre comment déclarer une nouvelle ligne appelée foundRow et lui assigne la valeur de retour de la méthode Find. Si la clé primaire est trouvée, le contenu de l'index de colonne 1 s'affiche dans un message.

    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");
    }
    

Recherche de lignes par valeurs de colonne

Pour rechercher des lignes selon les valeurs contenues dans chaque colonne

  • Des tables de données sont créées avec une méthode Select retournant un tableau de DataRow qui se base sur l'expression passée à la méthode Select. Pour plus d'informations sur la création d'expressions valides, consultez la section « Syntaxe d'expression » de la rubrique correspondant à la propriété Expression.

    L'exemple suivant illustre l'utilisation de la méthode Select de DataTable pour rechercher des lignes spécifiques.

    Dim foundRows() As Data.DataRow
    foundRows = DataSet1.Tables("Customers").Select("CompanyName Like 'A%'")
    
    DataRow[] foundRows;
    foundRows = dataSet1.Tables["Customers"].Select("CompanyName Like 'A%'");
    

Voir aussi

Référence

Find

Select

Autres ressources

Modification des données dans votre application

Connexion aux données dans Visual Studio

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Affichage des données sur des formulaires dans les applications Windows

Modification des données dans votre application

Validation des données

Enregistrement des données