Introduction
Lorsque vous travaillez avec des données, vous aurez souvent besoin de filtrer les résultats en fonction de certains critères. Typiquement, cela se fait en acceptant la saisie d'un utilisateur et en utilisant cette entrée pour former une requête SQL. Par exemple, une personne pourrai avoir de voir toutes les commandes entre des dates spécifiques.
Une autre requête pourrait être simplement de récupérer des champs suivant l’ID d’un enregistrement.
Comme vous le savez, la requête SQL assignée à un objet SqlCommand est simplement une chaîne.
Donc, si vous souhaitez filtrer une requête, vous pouvez créer la chaîne dynamique, mais cela est risqué car la requête n’est pas protégée.
Voici un mauvais exemple de filtrage d'une requête.

Ne jamais créer une requête de cette façon! La variable d'entrée, idTable, est généralement récupérée à partir d'un contrôle TextBox soit sur un formulaire Windows ou une page Web. Tout ce qui est placé dans le contrôle TextBox sera mis en idTable et ajouté à votre chaîne SQL. Cette situation peut inciter un pirate à remplacer cette chaîne par un code malveillant.
Au lieu de construire dynamiquement une chaîne, comme le montre le mauvais exemple ci-dessus, utilisez les requêtes paramétrées.
Tout ce qui est placé dans un paramètre sera traité et ne fait pas partie de l'instruction SQL, ce qui rend votre application beaucoup plus sûre.
L'utilisation de requêtes paramétrées est un processus en trois étapes:
1. Construire la chaîne de commande SqlCommand avec des paramètres.
2. Déclarez un objet SqlParameter en lui attribuant une valeurs.
3. Assignez l'objet SqlParameter à la propriété de l'objet SqlCommand.
Les sections suivantes vous guident étape par étape à travers ce processus.
La préparation d'un objet SqlCommand pour les paramètres
La première étape dans l'utilisation de paramètres dans les requêtes SQL est de construire une chaîne de commande contenant des espaces réservés de paramètres. Ces espaces réservés sont remplis avec des valeurs de paramètre réel quand la SqlCommand est exécuté.
La syntaxe correcte d'un paramètre est d'utiliser un préfixe symbole "@" sur le nom du paramètre comme indiqué ci-dessous:

Dans le constructeur de SqlCommand ci-dessus, le premier argument contient une déclaration de paramètre, @id. Cet exemple utilise un paramètre, mais vous pouvez avoir autant de paramètres que nécessaire pour personnaliser la requête. Chaque paramètre correspondant à un objet SqlParameter qui doit être affectés à cet objet SqlCommand.
Déclarer un objet SqlParameter
Chaque paramètre dans une instruction SQL doit être défini. Tel est l'objet du type SqlParameter. Votre code doit définir une instance de SqlParameter pour chaque paramètre de commande d'un objet SqlCommand de SQL. Le code suivant définit un paramètre pour le paramètre @id de la section précédente:

Notez que la propriété ParameterName de l'instance SqlParameter doit être écrite exactement comme le paramètre qui est utilisé dans la chaîne de commande SQL SqlCommand. Vous devez également spécifier une valeur pour la commande. Lorsque l'objet SqlCommand s'exécute, le paramètre sera remplacé par cette valeur.
Associer un objet SqlParameter avec un objet SqlCommand
Pour chaque paramètre défini dans la chaîne de commande de l’objet SqlCommand, vous devez définir un SqlParameter.
Vous devez également ajouter à l'objet SqlCommand tous les SqlParameter en attribuant l'instance SqlParameter à la propriété Parameters de l'objet SqlCommand.
Le code suivant montre comment faire:

L'instance SqlParameter est l'argument de la méthode Add de la propriété Parameters de l'objet SqlCommand ci-dessus.
Vous devez ajouter un unique SqlParameter pour chaque paramètre défini dans la chaîne de l'objet SqlCommand de commande SQL.
On met tout ensemble.

Résumé :
Vous devez utiliser des paramètres pour filtrer les requêtes d'une manière sûre, un très bon moyen pour éviter les injections SQL.
Le processus de d’utilisation du paramètre comporte trois étapes:
-définir le paramètre dans la chaîne de commande SqlCommand.
-déclarer l'objet SqlParameter avec des propriétés applicables.
-Affecter l'objet SqlParameter à l'objet SqlCommand.
Lorsque le SqlCommand est exécuté, les paramètres seront remplacés par les valeurs spécifiées par l'objet SqlParameter.
Voilà vous savez tout sur les requêtes paramétrés ! Écouter
Lire phonétiquement
9a348dea-1bc9-4960-ac0a-43dbb6c902e4|0|.0
ADO.NET, C#
sql, injections, requêtes paramétrées, ado, base de données