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)
可是这样就无法使用存储过程了
上面举的例子只有两个参数,但实际情况是不知道有多少个参数,要看具体情况而定
希望有高手能指点一下 展开
如果是在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)
可是这样就无法使用存储过程了
上面举的例子只有两个参数,但实际情况是不知道有多少个参数,要看具体情况而定
希望有高手能指点一下 展开
展开全部
也可以像你所说的一样,将参数以字符串传给存储过程,在存储过程中组合查询语句,然后用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.
存储过程如下:
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.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询