首页 新闻 会员 周边

sql语句中in范围的问题

0
悬赏园豆:30 [已关闭问题] 关闭于 2008-01-25 08:11
<P>exec sp_executesql N'select&nbsp; ID,Name,Sex,Age,UpdateDate from People where&nbsp; (ID in(@ID0)) ',N'@ID0 nvarchar(3)',@ID0=N'2,4'</P> <P>上面的语句是.net 参数化查询拼装出来的,id是integer类型</P> <P>执行的时候报错"在将 nvarchar 值 '2,4' 转换成数据类型 int 时失败。"</P> <P>有无好的解决方案?</P>
问题补充: 我明白出错的原因是什么,我在加入Parameters 的時候,值必须按照字符串格式传进去(2,3,4) 不能解决的问题在于我们在查询分析器中执行 select * from people where id in(2,3,4) 的时候没问题 而通过参数构造出来却成了问题呀,唉
XXXCccddd的主页 XXXCccddd | 初学一级 | 园豆:40
提问于:2008-01-24 17:14
< >
分享
所有回答(2)
0
看这个:@ID0=N'2,4' 给ID0这个参数的值是个字符串"2,4",而且这个字符串没法转换成int. 可能你给command添加参数时没有设置DbType. 你可以这样试试: SqlCommand cmd=... cmd.Parameters.AddWithValue("@ID0", /* 一个int值,不要是string */ 100);
deerchao | 园豆:8367 (大侠五级) | 2008-01-24 19:04
0
in查询是没有办法用参数的,死心吧~~~~~~~~~ 其实我觉得微软应该开放这个功能
丁学 | 园豆:18730 (专家六级) | 2008-01-24 23:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册