Maison >base de données >tutoriel mysql >Comment utiliser les paramètres SQL avec une clause IN et une liste de chaînes ?

Comment utiliser les paramètres SQL avec une clause IN et une liste de chaînes ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 14:28:39488parcourir

How to Use SQL Parameters with an IN Clause and a List of Strings?

Exécution d'une requête IN avec une liste de chaînes à l'aide de paramètres SQL

Votre code tente d'exécuter une instruction IN à l'aide d'une liste comme paramètre du paramètre SQL @settings. Cependant, cette approche n'est pas valide car elle nécessite un type de données pris en charge pour la liaison.

Pour exécuter une requête IN avec une liste de chaînes, vous pouvez suivre ces étapes :

  1. Créez un modèle de requête de chaîne : Construisez une requête de chaîne qui inclut des espaces réservés pour chaque élément de la liste. Par exemple :
string sql = "SELECT dscr FROM system_settings WHERE setting IN ({0})";
  1. Convertir la liste en un tableau de paramètres : Créer un tableau de noms de paramètres, où chaque nom correspond à un espace réservé dans la requête modèle.
string[] paramArray = settingList.Select((x, i) => "@settings" + i).ToArray();
  1. Formatez la requête : Remplacez le des espaces réservés dans le modèle de requête avec les noms des paramètres.
cmd.CommandText = string.Format(sql, string.Join(",", paramArray));
  1. Ajoutez les paramètres à la commande : Créez et ajoutez un SqlParameter pour chaque élément de la liste, en utilisant le nom et la valeur du paramètre correspondant.
for (int i = 0; i < settingList.Count; ++i)
{
    cmd.Parameters.Add(new SqlParameter("@settings" + i, settingList[i]));
}

En suivant ces étapes, vous pouvez effectuer en toute sécurité une requête IN avec une liste de chaînes à l’aide des paramètres SqlCommand. Cette approche consiste à créer un nom de paramètre personnalisé pour chaque chaîne de la liste et à spécifier le type de données approprié pour SqlParameter.

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