SQL SERVER 存储过程问题:VS2005+C#

如何在WHERE中使用“IN()”,()中是一些变量,而且变量的个数不定,需要从程序里传递,如果是在C#中使用SQL语句,就可以用STRING的+操作,如:STRINGx... 如何在WHERE中使用“IN()”,()中是一些变量,而且变量的个数不定,需要从程序里传递,
如果是在C#中使用SQL语句,就可以用STRING 的 + 操作,
如:
STRING x = "zhangsan";
STRING y = "lisi"
STRING selectStr = “SELECT * FROM users WHERE name IN(”+ x +“,”+ y +“)”;
selectStr的值就是:
SELECT * FROM users WHERE name IN(zhangsan,lisi)
可是这样就无法使用存储过程了

上面举的例子只有两个参数,但实际情况是不知道有多少个参数,要看具体情况而定
希望有高手能指点一下
展开
 我来答
摆渡浮桥
2007-05-26 · TA获得超过3629个赞
知道大有可为答主
回答量:1610
采纳率:100%
帮助的人:2213万
展开全部
也可以像你所说的一样,将参数以字符串传给存储过程,在存储过程中组合查询语句,然后用execute()函数执行该语句。这样对参数数量不定的调用很方便。

存储过程如下:
create procedure test @paras varchar(1000)
as
declare @selectText varchar(1100)
select @selectText = 'SELECT * FROM users WHERE name IN(' + @paras + ')'

execute(@selectText)

在C#中调用该存储过程,并将前端的参数"'zhangsan','lisi'"传递给@paras.
exing1573
2007-05-26 · TA获得超过154个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:105万
展开全部
使用Parameters参数
例如:SELECT * FROM users WHERE name IN (@x,@y)
Parameters("@x").Value =
关于Parameters的方法请参看相关资料
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式