在写项目的时候遇到一个问题,sql 语句进行 like in 参数化,按照正常的方式是无法实现的
我们一般的思维是:
Like 参数:
string strSql = "select * from Person.Address where City like '%@add%'";
SqlParameter[] Parameters=new SqlParameter[1];
Parameters[0] = new SqlParameter("@add", "bre");
In 参数
string strSql = "select * from Person.Address where AddressID in (@add)";
SqlParameter[] Parameters = new SqlParameter[1];
Parameters[0] = new SqlParameter("@add", "343,372,11481,11533,11535,11755,11884,12092,12093,12143");
可是这样放在程序里面是无法执行的,即使不报错,也是搜索不出来结果的,
去网上搜索也没有一个明确的答案,经过反复试验,终于解决这个问题
正确解法如下:
like 参数
string strSql = "select * from Person.Address where City like '%'+ @add + '%'";
SqlParameter[] Parameters=new SqlParameter[1];
Parameters[0] = new SqlParameter("@add", "bre");
in 参数
string strSql = "exec('select * from Person.Address where AddressID in ('+@add+')')";
SqlParameter[] Parameters = new SqlParameter[1];
Parameters[0] = new SqlParameter("@add", "343,372,11481,11533,11535,11755,11884,12092,12093,12143");

本文解决了SQL查询中使用Like和In参数化时常见的问题。通过调整SQL语句的构造方式,确保了参数化能够正确执行,避免了搜索不到结果的情况。
4134

被折叠的 条评论
为什么被折叠?



