2010-04-28 86 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+"%')"; 

這是正確的做法,但不是=並不意味着像?或者你串總是啓動?與%