2011-06-02 95 views
2
answer = Request.Form("Text" & i) 

在用戶輸入插入到數據庫中的隨機文本的窗體中。目前如果用戶輸入單引號,則會產生錯誤。我如何從用戶答案中刪除單引號'?ASP - 如何刪除用戶輸入文本中的單引號

+1

除刪除單引號的,你爲什麼不'你想出如何正確包含它們?它們是文本的一部分。如果將參數中的用戶輸入傳遞給SQL或存儲過程,則不會有問題。 – DOK 2011-06-02 10:32:17

回答

3

答案是使用...更換(回答, 「'」, 「」)

3

使用

answer.Replace("\'", ""); 

以上將取代單引號。

+0

帽子將是我的腳本中使用這個正確的語法? – Beginner 2011-06-02 10:32:38

+0

answer = answer.Replace(「\'」,「」)...? – Beginner 2011-06-02 10:33:07

+0

ya明確的字符串類有替換方法。 – Bindas 2011-06-02 10:33:51

2

'被加倍,即2×'更換'例如"Ralph''s".

但是你逃脫最好使用與command objects參數化的語句,這將照顧這對你。

+1

特定的轉義只適用於某些特定的數據庫,每個數據庫對於轉義字符串文字都有不同的規則。你必須知道用什麼數據庫來正確地轉義字符串。 – Guffa 2011-06-02 10:36:27

+0

好點,我不應該假設一個MS分貝,另一個加參數化的陳述。 – 2011-06-02 10:38:51

3

解決此問題的正確方法是插入數據庫時​​使用參數。而不是 :

SqlCommand cmd = new SqlCommand("INSERT INTO TABLE VALUES ('" + answer + "')"); 

使用

SqlCommand cmd = new SqlCommand("INSERT INTO TABLE VALUES (@answer)",answer);