[英]How to deal with double quotes in JavaScript when referencing a C# variable
[英]How to deal with quotes within quotes in C#?
主要問題:
有沒有辦法在C#中的字符串中插入一個雙引號
信息:
我試圖在C#中執行類似下面的SQL Select語句
SELECT Name FROM Production.Product
WHERE CONTAINS(Name, '"chain*"');
我把它解釋如下:
string selectCommand= @"select Name from Production.Products
WHERE contains (Name,'\"" + chain+ "*\"')");
但我得到的字符串:
“WHERE包含(名稱,'\\”鏈\\“')”
我也嘗試過這個SOF 問題,但它也沒有用!:
string selectCommand= @"select Name from Production.Products
where contains (doc.document_name,'"""""" + full + """"""')");
如果查看字符串文字的文檔,您會發現有兩種格式。 常規格式,您必須轉義所有以下字符:
', ", \, 0, a, b, f, n, r, t, u, U, x, v.
所以你的字符串應該寫成如下:
string query = "WHERE CONTAINS(Name, \'\"chain*\"\');";
或逐字文字,前面帶有'at'符號,您只能通過'加倍'來轉義雙引號:
string query = @"WHERE CONTAINS(Name, '""chain*""');";
所以只需從字符串中刪除“@”即可。
這是因為你的字符串開頭有一個@
string selectCommand= "select Name from Production.Products where contains (doc.document_name,\'\"" + full + "*\"\');";
你基本上需要逃避'
和"
只需在字符串的開頭刪除@即可。
在字符串中保留反斜杠的原因是因為您已經告訴字符串不要通過將@放在字符串前面來替換轉義的字符序列。 刪除@將允許您的轉義字符轉義。
這樣的事情可能是:
string full = "abc";
string selectCommand= @"select Name from Production.Products where contains (doc.document_name,'""" + full + "*\"')";
“@”對你沒有幫助。 刪除它,你應該沒事。 這應該工作:
Console.WriteLine("...(doc.document_name,'\\"" + full + "*\\"')");
如果你真的想保留“@”,試試這個:
Console.WriteLine(@"...(doc.document_name,'""" + full + "*\\"')");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.