2010-04-28 89 views
0

我有嵌入在一个C#asp.net页面奇怪的转义字符问题

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

这是打破我的代码,因为它显然不能使用\'转义字符的文字<% %>下面的C#代码。为什么这样?其他转义字符如\"正在工作,为什么不是\'工作?

+4

我不知道为什么你认为你需要逃脱单引号 – 2010-04-28 14:27:32

+5

为什么你需要逃跑'单引号是不是在C#中的字符串特殊字符 – 2010-04-28 14:27:34

+5

FYI:?根据什么其他代码正在发生,你很可能有一个SQL注入问题。 – 2010-04-28 14:34:30

回答

1

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

如果您使用@“作为初始字符串终止符,序列\”而不是转义引号(但是“”)。

那么\”不是‘万能’转义序列,而\”是没有的。

0

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

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

这是正确的做法,但不是=并不意味着像?或者你串总是启动?与%