职工号 职工名 所属部门 工作经验
0001 张三 第一事业部 1年
0002 李四 第二事业部 2年
0003 王五 第三事业部 3年
0004 赵六 第四事业部 4年我的DateSet对象ds1存的是上面的数据,与数据表完全一样我想调用一个存储过程把上面的ds1存到数据库里面去,请问应该怎样实现,关键是多条数据实现起来有些不知所措,现在我是一头雾水不知道怎样实现!谢谢!
0001 张三 第一事业部 1年
0002 李四 第二事业部 2年
0003 王五 第三事业部 3年
0004 赵六 第四事业部 4年我的DateSet对象ds1存的是上面的数据,与数据表完全一样我想调用一个存储过程把上面的ds1存到数据库里面去,请问应该怎样实现,关键是多条数据实现起来有些不知所措,现在我是一头雾水不知道怎样实现!谢谢!
http://www.microsoft.com/downloads/details.aspx?FamilyId=F63D1F0A-9877-4A7B-88EC-0426B48DF275&displaylang=en
这是下载地址
Update data source
看这个例子就可以了
--职工号 职工名 所属部门 工作经验
--0001 张三 第一事业部 1年
--0002 李四 第二事业部 2年
--0003 王五 第三事业部 3年
--0004 赵六 第四事业部 4年 --select CHARINDEX('0001|0002|0003|0004','|')
--有一个方法,把表中的四个字段变成四个字符串
--如:
--'0001|0002|0003|0004'
--'张三|李四|王五|赵六'
--'第一事业部|第二事业部|第三事业部|第四事业部'
--'1年|2年|3年|4年'alter proc InsertTable(@c1 varchar(1000),@c2 varchar(1000),@c3 varchar(1000),@c4 varchar(1000))
as
begin
declare @i int
set @i=CHARINDEX('|',@c1)
while(@i>0)
begin
insert into tb
select LEFT(@c1,@i-1) ,LEFT(@c2, CHARINDEX('|',@c2)-1),LEFT(@c3, CHARINDEX('|',@c3)-1),LEFT(@c4, CHARINDEX('|',@c4)-1)
if @@ROWCOUNT>0
begin
select @c1=RIGHT(@c1,LEN(@c1)-CHARINDEX('|',@c1)),@c2=RIGHT(@c2,LEN(@c2)-CHARINDEX('|',@c2)),@c3=RIGHT(@c3,LEN(@c3)-CHARINDEX('|',@c3)),@c4=RIGHT(@c4,LEN(@c4)-CHARINDEX('|',@c4))
end
set @i=CHARINDEX('|',@c1)
end
if(LEN(@c1)>0)
begin
insert into tb
select @c1,@c2,@c3,@c4
endend
go
EXECUTE InsertTable '0001|0002|0003|0004','张三|李四|王五|赵六','第一事业部|第二事业部|第三事业部|第四事业部','1年|2年|3年|4年'
goselect * from tb
go
c1 c2 c3 c4
0001 张三 第一事业部 1年
0002 李四 第二事业部 2年
0003 王五 第三事业部 3年
0004 赵六 第四事业部 4年