问题描述
为了防止sql注入,我们通常会选择参数化的方法查询。在这个过程中,发现使用like 语句时,不能像直接的查询一样。否则,整个程序会出错。
解决方案
- 错误的写法
不能在SQL语句上带入匹配符
stirng keyvalue=request["keyvalue"];
string sql="select 字符 from 表 where 字段 like '%'@keyvalue%'";
SqlParameter p1=new SqlParameter("@keyvalue", "%" + keyvalue+"%");
- 正确的写法
要在SqlParameter中带入匹配符
stirng keyvalue=request["keyvalue"];
string sql = "select 字段 from 表 where 字段 like @keyvalue";
SqlParameter p1 = new SqlParameter("@keyvalue", "%" + keyvalue+"%");