Maison >base de données >tutoriel mysql >C# SqlCommand peut-il paramétrer les noms de colonnes sans procédures stockées ?

C# SqlCommand peut-il paramétrer les noms de colonnes sans procédures stockées ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 14:29:10248parcourir

Can C# SqlCommand Parameterize Column Names Without Stored Procedures?

Paramètres dans SqlCommand : Alternative au paramétrage des noms de colonnes

En C#, les procédures stockées ne sont pas toujours la solution souhaitée pour le paramétrage dynamique des noms de colonnes. La question se pose : peut-on accomplir cela sans recourir à des procédures stockées ?

La réponse courte est non. SqlCommand ne prend pas en charge le paramétrage des noms de colonnes. Cependant, nous pouvons construire la requête de manière dynamique au moment de l'exécution.

Pour éviter les attaques par injection, il est crucial de valider que le nom de la colonne d'entrée (« slot » dans ce cas) est approuvé et attendu. Dans cet esprit, nous pouvons construire la requête comme suit :

// TODO: verify that "slot" is an approved/expected value
SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE name=@name; ")
prikaz.Parameters.AddWithValue("name", name);

Cette méthode nous permet de paramétrer les valeurs d'entrée comme "@name" tout en construisant dynamiquement la requête en fonction du nom de colonne spécifié.

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