我有以下WHERE
条件在SELECT
语句:逃逸用户输入参数
WHERE ('.' + column_name LIKE @prefix))
而@prefix
参数被设置如下:
cmd.Parameters.AddWithValue("@prefix", "%[^a-z]" & prefix & "%")
的prefix
变量从形式取输入。
我遇到的问题是当用户输入'%'或'['或其他特殊字符。我怎样才能确保这些逃脱而不是被视为特殊字符?
相关:一般来说,您如何阻止人们在输入中输入'%'并将其视为通配符?
可能的重复[如何清理SQL Server中的动态SQL - 防止SQL注入](http://stackoverflow.com/questions/4102387/how-to-cleanse-dynamic-sql-in-sql-server-预防-Sql注入) –
@PreetSangha我认为这个问题范围较窄,因为它要求在'LIKE'表达式中转义元字符。 – dasblinkenlight