Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens l'erreur « Le nom de la variable « @ » a déjà été déclaré » dans mes requêtes SQL ?

Pourquoi est-ce que j'obtiens l'erreur « Le nom de la variable « @ » a déjà été déclaré » dans mes requêtes SQL ?

Linda Hamilton
Libérer: 2025-01-01 07:00:11
original
769 Les gens l'ont consulté

Why Am I Getting the

Erreur "Le nom de la variable '@' a déjà été déclaré" dans les requêtes SQL

Lors de l'exécution de requêtes SQL, il est crucial de s'assurer que les noms de variables déclarés dans le lot de requêtes ou dans la procédure stockée sont uniques. Cette erreur se produit souvent lors de l'utilisation de la substitution de variable avec le préfixe '@'.

Cause de l'erreur

Dans le code fourni, la deuxième instance de '@LockState' dans la collection de paramètres déclenche l’erreur. En effet, chaque paramètre doit avoir un nom unique au sein de la même requête.

Résolution

Pour résoudre cette erreur, implémentez l'une des solutions suivantes :

  • Effacer la collection de paramètres après chaque itération :

Utiliser rwd.command.Parameters.Clear() après chaque itération de boucle pour supprimer les paramètres précédemment ajoutés, garantissant que la prochaine itération commence avec un nouvel ensemble.

for (long counter = from; counter <= to; counter++)
{
    rwd.command.Parameters.Clear();
    // ... (remaining code)
}
Copier après la connexion
  • Déclarer les paramètres en dehors de Boucle :

Déclarez les paramètres en dehors de la boucle et attribuez des valeurs à l'intérieur de la boucle. Cela garantit que les paramètres ne sont définis qu'une seule fois.

rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar));
rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar));

for (long counter = from; counter <= to; counter++)
{
    // ... (remaining code)
    rwd.command.Parameters["@LockState"].Value = 1;
    rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text;
}
Copier après la connexion

En suivant ces étapes, vous pouvez garantir des noms de variables uniques dans vos requêtes, évitant ainsi l'erreur « Le nom de variable '@' a déjà été déclaré » et garantissant exécution transparente.

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