职工号 职工名 所属部门   工作经验
0001 张三 第一事业部 1年
0002 李四 第二事业部 2年
0003 王五 第三事业部 3年
0004 赵六 第四事业部 4年我的DateSet对象ds1存的是上面的数据,与数据表完全一样我想调用一个存储过程把上面的ds1存到数据库里面去,请问应该怎样实现,关键是多条数据实现起来有些不知所措,现在我是一头雾水不知道怎样实现!谢谢!

解决方案 »

  1.   

    可有用sqlhelper来实现
    http://www.microsoft.com/downloads/details.aspx?FamilyId=F63D1F0A-9877-4A7B-88EC-0426B48DF275&displaylang=en
    这是下载地址
    Update data source
    看这个例子就可以了
      

  2.   


    --职工号 职工名 所属部门  工作经验 
    --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年
      

  3.   

    DATASET对象有相应的方法,查询一下MSDN吧。使用该方法时,对于数据库没有的数据结构,对象会自动创建——我以前用的是.NET 1.1,不知道现在的版本是不是这样。