如何处理C#中引号内的引号?

Maj*_*ajd 10 c# string quotes

主要问题:
有没有办法在C#中的字符串中插入一个双引号

信息:
我试图在C#中执行类似以下SQL Select语句的操作

SELECT Name FROM Production.Product
WHERE CONTAINS(Name, '"chain*"');  
Run Code Online (Sandbox Code Playgroud)

我把它解释如下:

string selectCommand= @"select Name from Production.Products  
WHERE contains (Name,'\"" + chain+ "*\"')");
Run Code Online (Sandbox Code Playgroud)

但我得到的字符串:

"WHERE包含(名称,'\"链\"')"

我也尝试过这个SOF 问题,但它也没有用!:

string selectCommand= @"select Name from Production.Products  
where contains (doc.document_name,'"""""" + full + """"""')");
Run Code Online (Sandbox Code Playgroud)

Col*_*inE 8

如果查看字符串文字的文档,您会发现有两种格式.常规格式,您必须转义所有以下字符:

', ", \, 0, a, b, f, n, r, t, u, U, x, v.
Run Code Online (Sandbox Code Playgroud)

所以你的字符串应该写成如下:

string query = "WHERE CONTAINS(Name, \'\"chain*\"\');";
Run Code Online (Sandbox Code Playgroud)

或逐字文字,前面带有'at'符号,您只能通过'加倍'来转义双引号:

string query = @"WHERE CONTAINS(Name, '""chain*""');";
Run Code Online (Sandbox Code Playgroud)

所以只需从字符串中删除"@"即可.


Jas*_*ong 7

这是因为你@的字符串开头有一个

string selectCommand= "select Name from Production.Products where contains (doc.document_name,\'\"" + full + "*\"\');";
Run Code Online (Sandbox Code Playgroud)

你基本上需要逃避'"