在线等:在ASP.NET参数化查询时遇到IN语句该怎样传递参数?

cantops 2006-12-30 11:38:53
例如:SEECT * FROM [XXX] WHERE ID IN(@ID)

@ID的值可能是 1,2,3,4
中间有逗号。
我用SqlDbType.VarChar类型数据库会提示无法将'1,2,3,4'转换为INT
很显然数据库是把'1,2,3,4'当作一个VarChar字符串了。
有没有办法让数据库识别出这是4个int而不是一个varchar呢?
...全文
211 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahyf 2006-12-30
  • 打赏
  • 举报
回复
Begin
declare @Sql nvarchar(4000);
Set @Sql =N'
Select * FROM *****
WHERE AAAAA IN (''''' + @Condition + '))
';
exec (@Sql)
end
xinganna 2006-12-30
  • 打赏
  • 举报
回复
我用string str="1,2,3,4";
SEECT * FROM [XXX] WHERE ID IN(@str)
没有问题啊。
ly65702708 2006-12-30
  • 打赏
  • 举报
回复
楼主散分,呵呵
cpp2017 2006-12-30
  • 打赏
  • 举报
回复
in(str)就不能用参数了.
ly65702708 2006-12-30
  • 打赏
  • 举报
回复
写个函数来判断有就去掉啊,没有 就跳过,
sunjay117 2006-12-30
  • 打赏
  • 举报
回复
这样的就不要用参数拉
yangyupeng521 2006-12-30
  • 打赏
  • 举报
回复
遇到in语句你就传“2','3','4','5','6”,就可以了,两头各少一个“'”号
ly65702708 2006-12-30
  • 打赏
  • 举报
回复
很简单,我就是这样用的
ly65702708 2006-12-30
  • 打赏
  • 举报
回复
in (str)
cantops 2006-12-30
  • 打赏
  • 举报
回复
。。。么么幕白兄!@ID1,@id2,@id3,@id4好像不那么智能化。还要分割成数组再动态加参数。真的米别的办法么?
cpp2017 2006-12-30
  • 打赏
  • 举报
回复
如果非要用参数这种方式的话,根据值的个数,生成参数.
cpp2017 2006-12-30
  • 打赏
  • 举报
回复
不行.除非你写 IN(@ID1,@id2,@id3,@id4)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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