Comment remplacer l'apostrophe avec double apostrophe dans la chaîne?
J'ai une chaîne
good overview of ESP's in more detail than you probably need
.
Lors de l'insertion dans la table SQL est en erreur. Donc, je veux remplacer l'apostrophe dans la chaîne avec double apostrophe comme
good overview of ESP''s in more detail than you probably need
Comment manipuler ce en c#?
Vous devez utiliser votre base de données échapper fonctions. Vous pourriez vous laisser vulnérable aux injections SQL si vous ne le faites pas. stackoverflow.com/questions/249567/...
Ou, encore mieux: Paramétrer les requêtes.
Ou, encore mieux: Paramétrer les requêtes.
OriginalL'auteur James123 | 2011-10-12
Vous devez vous connecter pour publier un commentaire.
Très facile:
Remarque: Il est généralement plus sûr d'utiliser des paramètres de commande. Surtout si les valeurs de la saisie de chaînes de caractères ne sont pas contrôlés par votre code (c'est à dire des entrées de l'utilisateur).
Pouvez injection se produisent encore, si la chaîne s'est échappé? D'Injection, tel que je le comprends, met fin à la sql prématurément à l'aide d'un seul apostophy.
OriginalL'auteur Olivier Jacot-Descombes
Utilisez le Paramètre de l'objet.
OriginalL'auteur Patrick Desjardins
Je travaillais sur ce problème pour les âges. Le faire sur le client, en remplacement de l'apostrophe avec deux guillemets simples. Ce fonctionne si vous êtes l'exécution d'un sp avec plusieurs varchar paramètres d'entrée. Le seul problème avec ceci est que l'injection SQL c'est à dire les gens peuvent voir ce que vous êtes sur le client qui n'est jamais une bonne chose. Le seul moyen de les contourner cela est d'utiliser SQLparameters sur le serveur, comme ils l'ont dit plus tôt.
OriginalL'auteur Otto Williams
String.Replace(String,String)
devrait fonctionner correctement. Dans cet exemple, vous souhaitez:Cependant, je ne pense pas que cela va résoudre votre problème. J'imagine que vous êtes de manière plus appropriée à la recherche:
La raison étant que MySQL, et j'imagine que les autres versions de SQL, s'attendre à des chaînes entre guillemets simples.
Certains dialectes SQL utiliser une double apostrophe (") au lieu de la séquence d'échappement (\') vous l'avez suggéré, pour MySQL.
Je suis entièrement d'accord, mais, compte tenu de la question, je suppose qu'il pourrait être préférable de prendre des mesures pour bébés. Expliquer le paramétrage à quelqu'un qui ne semble pas savoir sur les séquences d'échappement pourrait être un mauvais endroit pour commencer. Peu importe, cependant, il serait de loin préférable d'utiliser Daok de la solution que la mienne.
Jacot-Descombes - Comme dans la séquence d'échappement pour une apostrophe est une double apostrophe dans certains dialectes? Je suis un peu abasourdi par cette idée, donc je vais espère juste qu'il y a un peu raison pratique pour que, au lieu de quelque chose que je suppose serait plus facile à analyser.
OriginalL'auteur Dan Ambrisco
myCommand.InsertCommand.Les paramètres.Add("@machaine", SqlDbType.VarChar, 200);
myCommand.InsertCommand.Les paramètres["@machaine"].Valeur
OriginalL'auteur Pankaj