我正在尝试将转义字符用于"构造如下的SQL字符串:
selSQL += " WHERE [" + sFieldArr[i, 0] + "]" + op + "\"" + sFieldArr[i, 1] + "\"";
但它不正确地生成字符串,例如
WHERE [State]=\"Illinois\"
我应该如何逃避双引号?
更新:正如评论中指出的那样,转义字符实际上正常工作,它们只是出现在调试器中工作不正常。问题是SQL Server将其解释为列名 - 请参阅此文章:https://support.microsoft.com/en-us/kb/222664
解决方案是使用两个单引号而不是一个双引号。
答案 0 :(得分:0)
如上所述here,您可以使用带有两个双引号的at符号:
selSQL += " WHERE [" + sFieldArr[i, 0] + "]" + op + @"""" + sFieldArr[i, 1] + @"""";
输出:
WHERE [State]="Illinois"
答案 1 :(得分:0)
您可以使用逐字字符串文字来转义它。
> sapply(queries, xpathSApply, doc=xml, fun=xmlValue)
street-address locality region postal-code
[1,] "77 Yesler Way" "Seattle" "WA" "98104-2530"
[2,] "88 Yesler Way" "Seattttttle" "WAAAA" "99999-2530"
或者如果你想做正常的方式,
@" WHERE [" + sFieldArr[i, 0] + "]" + op + @"""" + sFieldArr[i, 1] + @"""";
正如您所说的" WHERE [" + sFieldArr[i, 0] + "]" + op + "\""" + sFieldArr[i, 1] + "\""";
值,他们应该返回
sFieldArr
但在你的情况下,我建议做以下
WHERE [State]="Illinois"