字符串中的双引号

时间:2014-07-29 12:38:00

标签: c# quotes

在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 \“\”Date \“\”,\“\”Key \“\”\ FROM TBL)

4 个答案:

答案 0 :(得分:4)

您的quotes变量正在添加两个双引号,而不是一个。改变这个:

string quotes = @"""""";

到此:

string quotes = @"""";

此外:

  1. string.Format("SELECT \"{0}\", \"{1}\" FROM TBL", a, b);
  2. 没有任何问题
  3. 您的代码易受SQL injection的影响。

    通常,您需要使用参数化查询,但由于这些查询不允​​许参数化列名,因此您至少需要自己清理输入并检查非法字符(例如{{1} },;)。

答案 1 :(得分:2)

这是否有效:

string quotes = "\"\"";

答案 2 :(得分:2)

不要通过字符串连接构造查询。你打开自己的SQL注入攻击。使用参数化查询,您还可以更轻松地添加引号。

答案 3 :(得分:1)

您可以使用正常转义,例如:string quotes = "\"\"";