最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

asp.net SqlParameter关于Like的传参数无效问题

来源:动视网 责编:小采 时间:2020-11-27 22:44:08
文档

asp.net SqlParameter关于Like的传参数无效问题

asp.net SqlParameter关于Like的传参数无效问题:按常规的思路,我们会这样写 代码如下:String searchName =Sam; String strSql = select * FROM Table1 where Name like '%@Name%' ; SqlParameter[] parameters = { new SqlParameter(@Name, se
推荐度:
导读asp.net SqlParameter关于Like的传参数无效问题:按常规的思路,我们会这样写 代码如下:String searchName =Sam; String strSql = select * FROM Table1 where Name like '%@Name%' ; SqlParameter[] parameters = { new SqlParameter(@Name, se


按常规的思路,我们会这样写
代码如下:
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like '%@Name%' ";
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};

但结果是查询不到结果,跟踪代码也没有发现错误,又不想用字符串拼接的方式(防止攻击)。于是跟踪了Sql的执行,发现问题在于Sql给参数自动添加了单引号。
实际上在Sql,将like的代码解析成为了 like '%'Sam'%' ",所以,你怎么查也都得不到想要的结果。

据此,我们可以将代码改成:
代码如下:
String searchName ="Sam";
String strSql = "select * FROM Table1 where Name like @Name ";
searchName = "%"+searchName+"%"; //注意不用加单引号,传参到Sql语句中会自动添加
SqlParameter[] parameters = {
new SqlParameter("@Name", searchName)
};

这样,就可以达到想要的查询结果。

文档

asp.net SqlParameter关于Like的传参数无效问题

asp.net SqlParameter关于Like的传参数无效问题:按常规的思路,我们会这样写 代码如下:String searchName =Sam; String strSql = select * FROM Table1 where Name like '%@Name%' ; SqlParameter[] parameters = { new SqlParameter(@Name, se
推荐度:
标签: sql 的问题 参数
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top