在字符串中双双引号(Double double quotes in the string)

2019-10-20 13:33发布

在C#中:我需要创建Oracle查询字符串是这样的:

string orQr = @"
    SELECT ""Date"", ""Key""
    FROM TBL
";

我需要动态地做到这一点。 但与逃避双重双引号的问题。

怎么做? 这是一个有点疯狂;-)并不起作用:

string quotes = @"""""";
string subSlct = quotes + "Date" + quotes + ", " + quotes + "Key" + quotes;
string orQrB = @"
    SELECT " + subSlct + @"
    FROM TBL
";

(结果是:SELECT \ “\” 日期\ “\”,\ “\” 键\ “\” \ FROM TBL)

Answer 1:

你的quotes变量增加了两个双引号,而不是一个。 更改此:

string quotes = @"""""";

为此:

string quotes = @"""";

也:

  1. 这没有什么错string.Format("SELECT \"{0}\", \"{1}\" FROM TBL", a, b);
  2. 您的代码容易受到SQL注入 。

    一般情况下,你要使用参数化查询,但由于这些不允许的参数列名,你起码要对自己净化输入和检查非法字符(例如, ;--



Answer 2:

这是否工作:

string quotes = "\"\"";


Answer 3:

不要字符串连接构造查询。 你打开自己的SQL注入攻击。 使用参数化查询 ,你也将能够更容易地包括引号。



Answer 4:

你可以只使用普通的转义,如: string quotes = "\"\"";



文章来源: Double double quotes in the string
标签: c# quotes