Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
La DataSet classe et les classes associées sont des technologies .NET Framework héritées du début des années 2000 qui permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Les technologies sont particulièrement utiles pour les applications qui permettent aux utilisateurs de modifier les données et de conserver les modifications apportées à la base de données. Bien que les jeux de données soient une technologie éprouvée, l’approche recommandée pour les nouvelles applications .NET consiste à utiliser Entity Framework Core. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet et dispose d’une interface de programmation plus simple.
Pour rechercher des enregistrements spécifiques dans un jeu de données, utilisez la FindBy méthode sur DataTable, écrivez votre propre instruction foreach pour effectuer une boucle sur la collection Rows de la table ou utilisez LINQ to DataSet.
Respect de la casse du jeu de données
Dans un jeu de données, les noms de table et de colonnes ne respectent pas la casse par défaut, c'est-à-dire qu'une table dans un jeu de données appelée « Clients » peut également être appelée « clients ». Cela correspond aux conventions d'affectation de noms dans de nombreuses bases de données, notamment SQL Server. Dans SQL Server, le comportement par défaut est que les noms des éléments de données ne peuvent pas être distingués uniquement par cas.
Remarque
Contrairement aux jeux de données, les documents XML respectent la casse, de sorte que les noms des éléments de données définis dans les schémas respectent la casse. Par exemple, le protocole de schéma permet au schéma de définir une table appelée Customers et une autre table appelée customers. Cela peut entraîner des collisions de noms lorsqu’un schéma qui contient des éléments qui diffèrent uniquement par cas est utilisé pour générer une classe de jeu de données.
Toutefois, la sensibilité de la casse peut être un facteur dans la façon dont les données sont interprétées dans le jeu de données. Par exemple, si vous filtrez des données dans une table de jeux de données, les critères de recherche peuvent retourner des résultats différents selon que la comparaison respecte la casse. Vous pouvez contrôler la sensibilité de la casse du filtrage, de la recherche et du tri en définissant la propriété du jeu de données CaseSensitive. Toutes les tables du jeu de données héritent par défaut de la valeur de cette propriété. (Vous pouvez remplacer cette propriété pour chaque table individuelle en définissant la propriété de CaseSensitive la table.)
Rechercher une ligne spécifique dans une table de données
Pour rechercher une ligne dans un jeu de données typé avec une valeur de clé primaire
Pour localiser une ligne, appelez la méthode fortement typée
FindByqui utilise la clé primaire de la table.Dans l’exemple suivant, la
CustomerIDcolonne est la clé primaire de laCustomerstable. Cela signifie que la méthode généréeFindByestFindByCustomerID. L’exemple montre comment affecter une variable spécifique DataRow à l’aide de la méthode généréeFindBy.
Pour rechercher une ligne dans un jeu de données non typé avec une valeur de clé primaire
Appelez la méthode Find d'une collection DataRowCollection, en fournissant la clé primaire comme paramètre.
L’exemple suivant montre comment déclarer une nouvelle ligne appelée
foundRowet l’affecter à la valeur de retour de la Find méthode. Si la clé primaire est trouvée, le contenu de l’index de colonne 1 s’affiche dans une boîte de message.
Rechercher des lignes par valeurs de colonne
Pour rechercher des lignes en fonction des valeurs de n’importe quelle colonne
Les tables de données sont créées avec la méthode Select, qui retourne un tableau de DataRow en fonction de 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 page sur la Expression propriété.
L’exemple suivant montre comment utiliser la méthode Select de DataTable pour localiser des lignes spécifiques.
Accéder aux enregistrements associés
Lorsque les tables d’un jeu de données sont associées, un DataRelation objet peut rendre les enregistrements associés disponibles dans une autre table. Par exemple, un jeu de données contenant les tables Customers et Orders peut être mis à disposition.
Vous pouvez utiliser un objet DataRelation pour localiser les enregistrements associés en appelant la méthode GetChildRows d'une table parente DataRow. Cette méthode retourne un tableau d’enregistrements enfants associés. Vous pouvez également appeler la méthode GetParentRow d’une table enfant DataRow. Cette méthode retourne une valeur unique DataRow à partir de la table parente.
Cette page fournit des exemples utilisant des jeux de données typés. Pour plus d’informations sur la navigation dans les relations dans des jeux de données non typés, consultez Navigation dans DataRelations.
Remarque
Si vous travaillez dans une application Windows Forms et que vous utilisez les fonctionnalités de liaison de données pour afficher des données, le formulaire généré par le concepteur peut fournir suffisamment de fonctionnalités pour votre application. Pour plus d’informations, consultez Lier des contrôles aux données dans Visual Studio. Plus précisément, consultez Relations dans les jeux de données.
Les exemples de code suivants montrent comment naviguer vers le haut et vers le bas dans les jeux de données typés. Les exemples de code utilisent des DataRow typés et les méthodes FindByPrimaryKey générées (NorthwindDataSet.OrdersRowFindByCustomerID) pour identifier une ligne souhaitée et retourner les enregistrements associés. Les exemples compilent et s’exécutent correctement uniquement si vous avez :
Instance d’un jeu de données nommé
NorthwindDataSetavec uneCustomerstable.Un tableau
Orders.Relation nommée
FK_Orders_Customersrelative aux deux tables.
En outre, les deux tables doivent être remplies de données pour que tous les enregistrements soient retournés.
Pour retourner les enregistrements enfants d’un enregistrement parent sélectionné
Appelez la méthode de GetChildRows d’une ligne de données spécifique
Customerset renvoyez un tableau de lignes de la tableOrders.
Retourner l’enregistrement parent d’un enregistrement enfant sélectionné
Utilisez la méthode GetParentRow d’une ligne de données spécifique
Orderset retournez une seule ligne de la tableCustomers:
Contenu connexe
- Outils de gestion de données dans Visual Studio