La façon de traiter avec les citations dans les citations en C#?
Question Principale:
Est-il un moyen d'insérer UN les doubles guillemets dans une chaîne de caractères en C#
Informations:
Je suis en train de réaliser quelque chose comme le SQL suivant Sélectionnez déclaration en C#
SELECT Name FROM Production.Product
WHERE CONTAINS(Name, '"chain*"');
Je l'ai interprété cela comme suit:
string selectCommand= @"select Name from Production.Products
WHERE contains (Name,'\"" + chain+ "*\"')");
Mais je suis sur la corde comme:
" OÙ les contient (Nom,'\"la chaîne\"')"
J'ai aussi essayé le chemin dans cette SOF question mais il ne fonctionne pas non plus!:
string selectCommand= @"select Name from Production.Products
where contains (doc.document_name,'"""""" + full + """"""')");
Vous devriez envisager d'utiliser des paramètres SQL au lieu de la construction de la requête par concaténation. Rend la vie plus facile et plus sûr.
OriginalL'auteur Majd | 2011-02-25
Vous devez vous connecter pour publier un commentaire.
Son parce que vous avez un
@
au début de votre chaîneVous avez besoin pour échapper à la
'
et"
OriginalL'auteur Jason Jong
Si vous regardez la documentation de les littéraux de chaîne, vous trouverez qu'il y a deux formats. Le format régulier où vous devez échapper tous les caractères suivants:
De sorte que votre chaîne doit être rédigé comme suit:
ou verbatim les littéraux, qui sont précédés d'un symbole, d'où vous seul moyen d'échapper les guillemets doubles par 'doubler':
Donc, il suffit de déposer le " @ " de votre chaîne et il va fonctionner.
OriginalL'auteur ColinE
Il suffit de déposer le @ au début de votre chaîne et cela devrait fonctionner.
La raison pour laquelle la barre oblique inverse est conservé dans votre chaîne est parce que vous avez dit à la chaîne de ne pas remplacer échappé à des séquences de caractères en plaçant le @ devant la chaîne. Retrait de la @ permettra à vos caractères d'échappement soit échappé.
OriginalL'auteur rein
Quelque chose comme ceci peut-être:
OriginalL'auteur Sascha
Le "@" ne sera pas vous aider ici. L'enlever, et vous devriez être bien. Cela devrait fonctionner:
Console.WriteLine("...(doc.document_name,'\"" + full + "*\"')");
Si vous voulez vraiment garder le "@", essayez ceci:
Console.WriteLine(@"...(doc.document_name,'""" + full + "*\"')");
OriginalL'auteur silverbeak