各位兄台,不知有没有办法将传入到存储过程中的字符串拆分并付给数组,现在小弟遇到一件事,如下,
string strList = "ID1;ID2;ID3;ID4;……"
我如何能存储过程中处理根据传进来的ID得到一个相应的数据集,(首先要去掉字符ID,得到一个整形数组)
,很急,谢谢大家
string strList = "ID1;ID2;ID3;ID4;……"
我如何能存储过程中处理根据传进来的ID得到一个相应的数据集,(首先要去掉字符ID,得到一个整形数组)
,很急,谢谢大家
解决方案 »
- 未处理 System.OutOfMemoryException异常问题
- 如何判断点确认还是取消
- 局域网中使用FTP上传类的问题!不能上传下载,
- winform 如何实现字典的速录
- 急!如何通过拖动鼠标实现Panel控件滚动条的滚动
- StreamWriter overload 的原因有哪些?
- 请问一个<asp:listbox>的内容怎样copy到另一个中?
- 如何导出至pdf和excel文件格式
- 把一个图片框的Image复制给另一个
- A窗体中新建B窗体,B中再新建C窗体, C窗中有一个BUTTON按一下如何使A窗体的一个LABEL的TEXT=“某值“
- 我在winform中使用datagrid,此datagrid绑定了DataSource,但是当我把DataGrid进行排序后,我点击其中一行,有没有办法取出我点中行的记录
- C#中的类型转换
select * from 表名 where ID= 数组[0] or ID = 数组[1] or ……
就行了
select * from
--(...)a替换成你的表名称
(
select '1' as id union select '2' union select '3' union select '4'
)a
where charindex(
';ID'+id+';' , ';ID1;ID2;ID3;')>0
参考一下函数
@sstr是分割符字符串
@B是传入字符串例如:字符串为"a;b;c;d"
调用:select * from fn_SplitToEnum(';','a;b;c;d')
create function fn_SplitToEnum(@sstr varchar(10),@B text)
returns @result table(result varchar(255))
asbegin--declare @sstr varchar(20),@B varchar(255)
--select @sstr=',', @B=','
--declare @result table(result varchar(255))
declare @tmp varchar(255)
declare @s_point int,
@t_point int,
@t int,@tmpsublen int declare @pos int
--临时变量
select @s_point=0,@t_point=0,
@pos=0
select @t_point=charindex(@sstr,@B,@s_point)
--print @t_point
--print @pos
while (1=1)
begin
if @t_point>0
begin
set @tmpsublen=@t_point-@s_point
set @tmp=rtrim(ltrim(substring(@B,@s_point,@tmpsublen)))
--print '[0]'+str(@s_point)+@tmp
insert @result values(@tmp)
end
else
begin
set @tmpsublen=datalength(@B)-@t_point+1
set @tmp=rtrim(ltrim(substring(@B,@s_point,@tmpsublen)))
--print '[1]'+@tmp
insert @result values(@tmp)
end
if @t_point<=0
goto tend
select @s_point=@t_point+1
select @t_point=charindex(@sstr,@B,@s_point)
end
tend:
return
end