Gérer les problème d'apostrophes sous ASP.NET lors de requête SQL ou Oracle

Publié le 26 janvier 2009 par Dave Lizotte
L'utilisation d'apostrophe (') dans une entré de donnée en SQL occasionne des problèmes d'exécution de requête. Il faut donc penser à les traiter. Prenons l'exemple suivant; Sur une plateforme web, nous avons un champ de saisie de recherche. Un usager saisie la recherche du mot john's votre requête ressemblera à ce qui suit :

SELECT * FROM [Employee] WHERE [Employee].employeNom LIKE 'john's' AND [Autre condition ...]


Vous voyez le problème ? L'engin de la base de données va traiter la requête comme suit :

SELECT * FROM [Employee] WHERE [Employee].employeNom LIKE john


La solution est donc d'encadrer le paramètre par des doubles apostrophe comme suit :

Dim searchValue as String
searchValue = txtSaisie.text
if searchValue.Text.Contains("'") then
   searchValue = txtSearchInput.Text.Replace("'", "\''")
endif