ListBox多选传入存储过程的问题
我的页面里有一个ListBox
里面的值是从pubs数据库的jobs表里的job_id字段取出的
显示效果为
---
1
2
3
4
5
6
…
我设定this.ListBox1.DataTextField = "job_id ";
this.ListBox1.DataValueField = "job_desc ";//job_desc为jobs表里的job_desc字段
当我选择ListBox的一行后
将选中项的值传给存储过程
存储过程如下:
create procedure pro_c
@name varchar(20)
as
select job_id,max_lvl,min_lvl from jobs where job_desc = @name
将查询后的结果用一个DataGrid显示出来
问题就出来了!
如果选择ListBox里一项的话,DataGrid可以正确的显示选中项的相关信息
但是在ListBox里,选择了多项后,比如选择了3和5点击Button后,DataGrid里只显示5的相关信息.
请问如何解决这种问题?
------解决方案--------------------很抱歉 刚才给错答案了 还是那里引号出问题了
特改如下
exec pro_c 'Publisher '
exec pro_c 'Publisher,Publisher2,Publisher3 '
CREATE PROCEDURE pro_c
@name nvarchar(200)
AS
declare @querystring nvarchar(500)
declare @sname nvarchar(200)
declare @alen bigint
declare @len bigint
set @querystring = 'select job_id,max_lvl,min_lvl from jobs where 1=1 and '
set @name = @name + ', '
while CHARINDEX( ', ',@name)> 0
begin
set @len = len(@name)
set @alen = CHARINDEX( ', ',@name)
set @sname = left(@name,@alen-1);
set @querystring = @querystring + ' job_desc = '+ ' ' ' '+@sname+ ' ' ' '+ ' or '
set @name = right(@name,@len-@alen);
end
set @querystring = left(@querystring,Len(@querystring)-2)
--select @querystring
EXEC sp_ExecuteSql @querystring
GO