Partager via


Créer des requêtes TableAdapter paramétrables dans les applications .NET Framework

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.

Une requête paramétrable retourne des données qui répondent aux conditions d’une WHERE clause dans la requête. Par exemple, vous pouvez paramétrer une liste de clients pour afficher uniquement 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 jeux de données. Vous pouvez également les créer dans une application Windows avec la commande Parameterize Data Source dans le menu Données . La commande Parameterize Data Source crée des contrôles sur votre formulaire où vous pouvez entrer les valeurs des paramètres et exécuter la requête.

Remarque

Lors de la construction d’une requête paramétrable, utilisez la notation de paramètre spécifique à la base de données sur laquelle vous codez. Par exemple, les sources de données Access et OleDb utilisent le point d’interrogation « ? » pour désigner les paramètres. Par conséquent, la WHERE clause se présente comme suit : WHERE City = ?.

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

Pour créer une requête paramétrable dans le Concepteur de jeux de données

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

    ou

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

Pour créer une requête paramétrable lors de la conception d’un formulaire lié aux données

  1. Sélectionnez un contrôle sur votre formulaire qui est déjà lié à un jeu de données. 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 boîte de dialogue Générateur de critères de recherche , en ajoutant une WHERE clause 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 desbalises actives de données.

    Remarque

    Si 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 vous souhaitez ajouter le paramétrage. Par exemple, si le formulaire affiche des données dans un DataGridView contrôle, sélectionnez-le. Si le formulaire affiche des données dans des contrôles individuels, sélectionnez un 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 Nouveau nom de requête si vous créez une requête.

    ou

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

  5. Dans la boîte de texte de la requête, tapez une requête qui accepte des paramètres.

  6. Cliquez sur OK.

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

Requête concernant 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 ShippedDate paramètre dans sa WHERE clause :

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 pouvez 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 sélectionnez le bouton à trois points (...) pour ouvrir l'éditeur de collection de paramètres.

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