2009-03-17 12 views
0

J'ai un problème où si j'ai une zone de texte dans ASP.NET et entrez 2 guillemets à la fin de la phrase, j'obtiens une erreur dans mon instruction sql. J'ai tracé à travers le profileur sql mais sans chance.Linq to SQL - numéro de citation

par ex. Le renard paresseux saute par-dessus le chien "". Cela échoue ....

"" Le renard "paresseux" saute par-dessus le chien. Cela semble bien

Les pointeurs les plus bienvenue

+0

Plus d'informations pourraient aider. Pouvez-vous poster une partie du code? – CodeRedick

+0

Je n'utilise pas les instructions sql directement donc cela devrait être pris en charge – chugh97

Répondre

3

Vous devriez probablement afficher le message d'erreur exact (et si possible, le code d'illustration). Notez également qu'avec LINQ-to-SQL, vous n'avez pas besoin du profileur sql pour voir la trace:

ctx.Log = Console.Out; // job done 
3

Êtes-vous concaténer votre entrée d'utilisateur dans l'instruction SQL directement? Si c'est le cas, c'est presque certainement le problème.

Si vous utilisez une instruction SQL paramétrée à la place (c'est-à-dire que vous envoyez les données utilisateur en tant que paramètre plutôt que directement dans le SQL), cela devrait fonctionner correctement. De cette façon, vous protègent également contre les attaques par injection SQL ...

2
0x3A28213A 
0X6339392C 
0X7363682E 
+0

Plagiarized de XKCD, bien sûr ... – CodeRedick

+1

Ce sera le problème alors! Peut-être qu'il utilise x64, donc ces pointeurs 32 bits ne fonctionneront pas ...