Maison > base de données > tutoriel mysql > Comment utiliser en toute sécurité l'instruction IN de SQL avec SqlParameter et une liste ?

Comment utiliser en toute sécurité l'instruction IN de SQL avec SqlParameter et une liste ?

Susan Sarandon
Libérer: 2024-12-20 03:39:12
original
569 Les gens l'ont consulté

How to Safely Use SQL's IN Statement with SqlParameter and a List?

Instruction SQL IN avec SqlParameter et List

Lors de la tentative d'exécution d'une instruction IN avec un SqlParameter à l'aide d'une List , une ArgumentException peut survenir en raison de l'incapacité de mapper la liste à un type de fournisseur connu. Ce problème peut être résolu en utilisant l'approche suivante :

  1. Convertir la liste en tableau :
    Convertir la liste à un tableau de chaînes, tel que :

    string[] paramArray = settingList.ToArray();
    Copier après la connexion
  2. Formater l'instruction SQL :
    Formater l'instruction SQL avec un espace réservé pour chaque paramètre, en utilisant le nombre de paramètres dans le tableau :

    string sql = "SELECT dscr FROM system_settings WHERE setting IN ({0})";
    sql = string.Format(sql, string.Join(",", paramArray.Select((x, i) => "@settings" + i)));
    Copier après la connexion
  3. Ajouter Paramètres :
    Pour chaque élément du tableau, ajoutez un SqlParameter à l'objet de commande, en utilisant le nom et la valeur appropriés :

    for (int i = 0; i < settingList.Count; ++i)
    {
        cmd.Parameters.Add(new SqlParameter("@settings" + i, settingList[i]));
    }
    Copier après la connexion
  4. Exécutez le Commande :
    Exécutez la commande comme habituel :

    reader = cmd.ExecuteReader();
    Copier après la connexion

Cette approche fournit un moyen sûr et efficace d'exécuter une instruction IN avec une instruction List en utilisant SQLParameters.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal