Maison  >  Article  >  développement back-end  >  Requêtes paramétrées en C# à l'aide de SqlParameter

Requêtes paramétrées en C# à l'aide de SqlParameter

WBOY
WBOYoriginal
2024-02-18 22:02:07422parcourir

Requêtes paramétrées en C# à laide de SqlParameter

Le rôle et l'utilisation de SqlParameter en C#

Dans le développement C#, l'interaction avec la base de données est l'une des tâches courantes. Afin de garantir la sécurité et la validité des données, nous devons souvent utiliser des requêtes paramétrées pour empêcher les attaques par injection SQL. SqlParameter est une classe en C# utilisée pour créer des requêtes paramétrées. Elle fournit un moyen sûr et pratique de gérer les paramètres dans les requêtes de base de données.

Le rôle de SqlParameter
La classe SqlParameter est principalement utilisée pour ajouter des paramètres aux instructions SQL. Ses principales fonctions sont les suivantes :

  1. Prévenir les attaques par injection SQL : en utilisant SqlParameter, nous pouvons échapper à l'avance la valeur du paramètre et garantir que lors de l'exécution d'une requête de base de données, la valeur du paramètre ne sera pas interprétée comme faisant partie de l'instruction SQL.
  2. Amélioration des performances : dans les requêtes de base de données, les plans de requête mettent généralement en cache la requête pour améliorer les performances. Lors de l'utilisation de SqlParameter, la même instruction de requête ne doit être compilée qu'une seule fois et peut ensuite être utilisée à plusieurs reprises.
  3. Prend en charge différents types et tailles de données : SqlParameter prend en charge divers types de données courants, tels que les chaînes, les entiers, les dates, etc., et la taille, la précision et les décimales des paramètres peuvent être définies selon les besoins.

Utilisation de SqlParameter
Ci-dessous, nous utilisons un exemple pour montrer comment utiliser SqlParameter pour créer des requêtes paramétrées.

Supposons que nous ayons une table nommée « Employés » qui contient l'identifiant, le nom et les informations sur le salaire des employés. Nous devons interroger les informations sur les employés dont le salaire est supérieur à un montant spécifié. Voici un exemple de code utilisant SqlParameter :

string queryString = "SELECT EmployeeID, FirstName, LastName FROM Employees WHERE Salary > @salary";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.Add("@salary", SqlDbType.Decimal).Value = 5000; // 设置参数名称、类型和值

    connection.Open();
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read())
    {
        int employeeId = (int)reader["EmployeeID"];
        string firstName = reader["FirstName"].ToString();
        string lastName = reader["LastName"].ToString();

        Console.WriteLine($"Employee ID: {employeeId}, Name: {firstName} {lastName}");
    }

    reader.Close();
}

Dans l'exemple ci-dessus, nous créons d'abord une chaîne de requête qui inclut le nom du paramètre "@salary". Ensuite, nous avons créé une connexion à la base de données et un objet de commande de requête à l'aide de SqlConnection et SqlCommand.

Ensuite, nous ajoutons un paramètre à la commande query en appelant la méthode command.Parameters.Add. Ici, nous spécifions le nom, le type et la valeur du paramètre. Dans cet exemple, nous utilisons SqlDbType.Decimal comme type de paramètre et définissons la valeur du paramètre sur 5 000. command.Parameters.Add方法,我们向查询命令中添加了一个参数。在这里,我们指定了参数的名称、类型和值。在这个例子中,我们使用SqlDbType.Decimal作为参数类型,并将参数值设置为5000。

最后,我们打开数据库连接,并执行查询命令。通过调用command.ExecuteReader

Enfin, nous ouvrons la connexion à la base de données et exécutons la commande query. Obtenez les résultats de la requête en appelant command.ExecuteReader et utilisez SqlDataReader pour lire les résultats ligne par ligne. Dans la boucle, nous obtenons l'ID et le nom de chaque employé via le nom de la colonne et les affichons sur la console.


Résumé

En utilisant SqlParameter, nous pouvons créer efficacement des requêtes paramétrées, améliorant ainsi la sécurité et les performances des requêtes de base de données. En définissant le nom, le type et la valeur du paramètre, nous pouvons facilement ajouter des paramètres aux instructions SQL et empêcher d'éventuelles attaques par injection SQL. J'espère que cet article vous aidera à comprendre le rôle et l'utilisation de SqlParameter en C#. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn