SqlParameter一个变量对应多个参数的问题

qiujg 2018-04-09 11:18:54
select * from tt where name1 like @name or name2 like @name or name3 like @name
list.Add(new SqlParameter("@name", "张"));
这样执行不出结果

改为:
select * from tt where name1 like @name or name2 like @name or name3 like @name
list.Add(new SqlParameter("@name", "张"));
list.Add(new SqlParameter("@name", "张"));
list.Add(new SqlParameter("@name", "张"));
也不行

必须改为下面的?
select * from tt where name1 like @name1 or name2 like @name2 or name3 like @name3
list.Add(new SqlParameter("@name1", "张"));
list.Add(new SqlParameter("@name2", "张"));
list.Add(new SqlParameter("@name3", "张"));
这个可以。

请问为什么?
...全文
671 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leckun 2018-04-19
  • 打赏
  • 举报
回复
你说的三种,估计除了第二种,其它都可以。第1种是正常的方法,至于为什么没效果,上面几位也说了,是因为你使用了like,要使用%%通配符才能模糊查询
李敢敢 2018-04-12
  • 打赏
  • 举报
回复
百分号
  • 打赏
  • 举报
回复
like 什么是like!!! 你传入的字符串都没匹配符 你说3哪种可以,这是不可能的
编程有钱人了 2018-04-10
  • 打赏
  • 举报
回复
select * from tt where name1 like @name or name2 like @name or name3 like @name list.Add(new SqlParameter("@name", "%"张"%")); ============== 参考 https://www.cnblogs.com/niunan/p/5699308.html
全栈极简 2018-04-09
  • 打赏
  • 举报
回复
对,因为变量绑定的时候是根据名称一一对应的,你这样子不知道该如何对应了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧