在SQL参数中转义用户输入

时间:2012-06-06 01:27:17

标签: asp.net sql-server .net-3.5

我在WHERE声明中有以下SELECT条件:

WHERE ('.' + column_name LIKE @prefix))

@prefix参数设置如下:

cmd.Parameters.AddWithValue("@prefix", "%[^a-z]" & prefix & "%")

prefix变量取自表单输入。

我遇到的问题是当用户输入'%'或'['或其他特殊字符时。如何确保这些转义而不是被视为特殊字符?

相关:一般来说,如何阻止人们在输入中输入'%'并将其视为通配符?

1 个答案:

答案 0 :(得分:2)

SQL's LIKE operator提供了一个可选的ESCAPE子句:

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

您可以将转义字符设置为您喜欢的单个字符,并使用它转义元字符。