奇怪的逃脱字符问题

时间:2010-04-28 14:24:33

标签: c# asp.net sqlcommand escaping

我在c#asp.net页面的文字<% %>中嵌入了以下c#代码

string commandString = "SELECT tblData.Content " +
                        "FROM tblData " +
                        "WHERE (tblData.ref = N\'%"+myCurrentREF+"%\')";

这打破了我的代码,因为它显然无法使用\'转义字符。为什么会这样?其他转义字符如\"正在运行,为什么\'无效?

3 个答案:

答案 0 :(得分:1)

如果您选择“作为字符串终止符,序列”“正在”工作。

如果你使用@“作为初始字符串终止符,序列\”转义引号(但“”确实如此)。

所以\“不是”通用“转义序列,而且”不是。“

答案 1 :(得分:0)

你不应该逃避单引号。但如果你这样做,你可以随时尝试@方法。

答案 2 :(得分:0)

string commandString = "SELECT tblData.Content " +
                    "FROM tblData " +
                    "WHERE (tblData.ref = '%"+myCurrentREF+"%')";

这是正确的方法,但不是=并不意味着?,或者你的字符串总是以%开头?