2011-06-02 133 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);