如何在C#StringBuilder中使用转义双引号

时间:2014-05-16 23:55:09

标签: c# .net

使用.Net 4.0,C#。

我在我的应用程序中构建自定义sql,它被传送到db端的存储过程,并从那里进一步处理。我需要能够在select子句的别名周围放置双引号(因为一旦你使用它们,你总是必须使用它们)。我已经创建了这个逻辑,除了我的select子句的stringbuilder没有正确地转义我的双引号。

我的(已清理)代码:

StringBuilder sb = new StringBuilder();
foreach (var detail in report.CustomReport.PTS_CP_CUSTOM_REPORT_DET)
{
    var columnDataType = GetColumnDataType(detail);
    sb.Append(", " + detail.PTS_CP_CUSTOM_REPORT_VIEW_DET.COLUMN_NAME + " \"" + detail.DISPLAY_NAME + "\"");
    this.ColumnData.Add(colData);
}
return string.Format(SelectTemplate, sb);

输出选择语句:

SELECT PO_NUMBER \"PO_NUMBER\", .../* several columns */, CUST_NUM \"CUST_NUM\""

我需要那些反斜杠消失。我已经尝试了几种方法来解决它:

  • 将一个.Replace附加到return语句和返回它的字符串变量。
  • 切换到使用逐字(@)方法
  • 创建包含"的迷你字符串变量\""价值,然后追加它们。

我也在没有string.Format()调用的情况下运行return,但问题仍然存在。

似乎没什么用。我查看了hereherehere以及其他几个地方,但似乎没有人回答。不知道从哪里开始。

0 个答案:

没有答案