[已解决问题] 数据库循环添加问题
提问时间: 2008-06-03 13:04
悬赏分:10 浏览:167 次

我在前台获取了一个字符串 内容为 uids="1,2,3,4,5,...9" 是获取的某个表的ID列

我现在想将这些ID循环添加到另一个表中去 该如何做啊 ?

思路我晓得,求具体的写法


提问者:yeyang - 菜鸟二级
最佳答案
你可以建一个拆分字符串成id的函数,下面的文章中有实现;然后就可以把这一串id作为一张表来处理了,就可以随意插入了。

http://www.cnblogs.com/yukaizhao/archive/2008/04/28/clr_sql_function.html

如果你不愿意建用户定义的sql函数,可以用sql这样实现

    declare @i int,@j int,@l int,@v bigint;
    SET @i = 0;
    SET @j = 0;
    SET @l = len(@strIds);
    while (@j < @l)
    BEGIN
        SET @j = charindex(',',@strIds,@i+1);
        IF @j = 0 set @j = @l+1;
        SET @v = cast(substring(@strIds,@i+1,@j-@i-1) as bigint);
--此处插入你说的表中。
        INSERT INTO table_IDs(id)VALUES(@v)
        SET @i = @j;
    END
2008/6/3 13:55:32 回答者:玉开


提问者对于答案的评价:这样确实能实现 就是感觉有点复杂 如果还有更简单的方法就好了
其它回答(2)
先拆分字符串成数组,然后循环插入,有问题吗?
string[] ss = uids.split(',');
foreach(string s in ss){
  // add s to database
}
2个月前   回答者:丁学 - 大侠五级
"思路我晓得,求具体的写法"?
那您的思路是什么呢?不然我们只能按照自己的思路来写了。
2个月前   回答者:datasky - 小虾三级
评论
2个月前   刚刚 :
第一种方法,使用Sql语句。
给你一个例子,你对照自己的表改一下就可以了。
设表1【id,name,sex,del】;表2【id,myname,mysex,mydel】
表1中有数据,如下所示:
表1
id   name    sex   del(del为bit或布尔类型数据)
1   lijigang    男   true
2   ljg          男   true
3   ljg          女   true
4   刚刚      男   false
5   王坤      男   false
6   wangkun  女   false
7   刘真      女   false
8   liuzhen     男   true
……
使用下面的语句可以将表1中id为1,2,3,4,5,6的数据插入到表2中:
insert into 表2 (myname,mysex,mydel) select name,sex,del from 表1 where 表1.id in (1,2,3,4,5,6)
【注意:此Sql语句中表1和表2的字段数量的对应要一致,且数据类型也要一致!】
执行完上面的Sql语句后的表2数据如下:
表2
id    myname   mysex   mydel(mydel为bit或布尔类型数据)
1     lijigang       男     true
2      ljg            男     true
3      ljg            女     true
4     刚刚        男     false
5     王坤        男     false
6     wangkun     女     false

第二种方法,用后台代码完成。
可以先将数据从表1中查询出来到dataset,再用循环方式逐个插入到表2中。
第三种方法,可能还有其他方式,比如存储过程等,自己根据所学扩展研究研究吧,勤于思考有好处!
2个月前   刚刚 :
我觉得这个方法更好些!
2个月前   刚刚 :
楼主给最佳答案给的也太快了点吧!
2个月前   刚刚 :
吃了个中午饭的功夫就选了个最佳答案了,晕菜菜了!
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除