Créer des requêtes TableAdapter paramétrisées dans des applications .NET Framework

Remarque

Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles 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. Elles sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.

Une requête paramétrable retourne des données remplissant les conditions d'une clause WHERE dans la requête. Par exemple, vous pouvez paramétrer une liste de clients de sorte à n'afficher que les clients d'une certaine ville en ajoutant WHERE City = @City à la fin de l'instruction SQL qui retourne une liste de clients.

Vous créez des requêtes TableAdapter paramétrables dans le Concepteur de DataSet. Vous pouvez également les créer dans une application Windows avec la commande Paramétrer la source de données dans le menu Données . La commande Paramétrer la source de données crée des contrôles sur votre formulaire où vous pouvez entrer les valeurs des paramètres et exécuter la requête.

Notes

Quand vous construisez une requête paramétrée, utilisez la notation de paramètre propre à la base de données sur laquelle vous encodez. Par exemple, les sources de données Access et OleDb utilisent le point d'interrogation « ? » pour désigner des paramètres, pour que la clause WHERE ressemble à : WHERE City = ?.

Créer une requête TableAdapter paramétrée

Pour créer une requête paramétrée dans le Concepteur de DataSet

  • Créez un nouveau TableAdapter, en ajoutant une clause WHERE avec les paramètres souhaités à l'instruction SQL. Pour plus d’informations, consultez Créer et configurer TableAdapters.

    or

  • Ajoutez une requête à un TableAdapter existant, en ajoutant une clause WHERE avec les paramètres souhaités à l'instruction SQL.

Pour créer une requête paramétrée pendant la conception d'un formulaire lié aux données

  1. Sélectionnez un contrôle dans votre formulaire déjà lié à un dataset. Pour plus d’informations, consultez Lier des contrôles Windows Forms aux données dans Visual Studio.

  2. Dans le menu Données, sélectionnez Ajouter une requête.

  3. Terminez la zone de dialogue Générateur de critères de recherche, en ajoutant une clause WHERE avec les paramètres souhaités à l’instruction SQL.

Pour ajouter une requête à un formulaire lié aux données existant

  1. Ouvrez le formulaire dans le Concepteur Windows Forms.

  2. Dans le menu Données, sélectionnez Ajouter une requête ou Balises de données actives.

    Notes

    Si l’option Ajouter une requête n’est pas disponible dans le menu Données, sélectionnez un contrôle dans le formulaire qui affiche la source de données à laquelle ajouter le paramétrage. Par exemple, si le formulaire affiche des données dans un contrôle DataGridView, sélectionnez-le. Si le formulaire affiche des données dans des contrôles individuels, sélectionnez n'importe quel contrôle lié aux données.

  3. Dans la zone Sélectionner une table de source de données, sélectionnez la table à laquelle vous souhaitez ajouter un paramétrage.

  4. Tapez un nom dans la zone Nom de la nouvelle requête si vous créez une requête.

    or

    Sélectionnez une requête dans la zone Nom de la requête existante.

  5. Dans la zone Texte de requête, tapez une requête qui prend des paramètres.

  6. Sélectionnez OK.

    Un contrôle pour entrer le paramètre et un bouton Charger sont ajoutés au formulaire dans un contrôle ToolStrip.

Requête pour les valeurs Null

Les paramètres TableAdapter peuvent être attribués à des valeurs Null lorsque vous souhaitez rechercher des enregistrements qui n’ont aucune valeur actuelle. Par exemple, considérez la requête suivante qui a un paramètre ShippedDate dans sa clause WHERE :

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

S’il s’agissait d’une requête sur un TableAdapter, vous pourriez interroger toutes les commandes qui n’ont pas été livrées avec le code suivant :

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Pour permettre à une requête d’accepter des valeurs Null :

  1. Dans le Concepteur de jeux de données, sélectionnez la requête TableAdapter qui doit accepter les valeurs de paramètre Null.

  2. Dans la fenêtre Propriétés, sélectionnez Paramètres, puis cliquez sur le bouton de sélection (...) pour ouvrir l’Éditeur de collection Paramètres.

  3. Sélectionnez le paramètre qui autorise les valeurs Null et définissez la propriété allowDbNull sur true.