DataSet里面有两个表:
A表包含字段(number,pay)
B表包含字段(employeeid,number)
怎么把这两个结构不相同的表合并后插入到数据库?谢谢啊!

解决方案 »

  1.   

    想怎么回并啊?作积?还是B中的Number以A中的Number为foreign key?
      

  2.   

    给你个最麻烦的思路,把两个表的值取出来附到另一个dt上,然后用dt更新数据库
      

  3.   

    嗯,用number作为foreign key.其实思路是这样的,我需要设计两个数据源,一个读取excel的数据(里面有number,pay字段),另外一个读取数据库的A表(里面有employeeid,number字段).利用这两个数据源的数据插入到数据库的B表(里面有employeeid,pay,date字段)
    谢谢各位大哥
      

  4.   

    定义一个新的DATASET 用FOR循环将两表中你要的列插入到新的DATASET 中。然后写个SQL语句将新的DATASET 中的数据保存到数据库的B表
      

  5.   

    这样其实很简单啊!
    你再创建一个DataSet dsB
    将另外两个DataSet合并到dsB,再将dsB提交就OK了!
    这个合并过程当然要你做一个双重循环,复制到dsB中!
      

  6.   

    嗯,我明白.不过怎样把dataset里面的表复制到新dataset呢?
      

  7.   

    DataSet ds = data;//数据原
    DataSet ds2 = new DataSet();        
    ds2.Tables.Add(ds.Tables[0]);  
    你看看好不好用
      

  8.   

    哦~~明白啦!谢谢各位.我回去试试.不过我现在又想了一个新方法.就是先利用存储过程把excel表打开,再联合其他表一起插入数据库.语句如下:insert into CustAppendant0001600084(vieworder,employeeid,cust2093,cust2092,dateinfo) select '1',employees.employeeid,b.number,b.consumefee,b.[date] from 
    OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\111.xls;','select * from [123$]') as b inner join employees on b.number=employees.number但
      

  9.   

    哦~~明白啦!谢谢各位.我回去试试.不过我现在又想了一个新方法.就是先利用存储过程把excel表打开,再联合其他表一起插入数据库.语句如下:  
     
    insert  into  CustAppendant0001600084(vieworder,employeeid,cust2093,cust2092,dateinfo)  select  '1',employees.employeeid,b.number,b.consumefee,b.[date]  from    
    OpenRowSet('microsoft.jet.oledb.4.0','Excel  8.0;HDR=yes;database=c:\111.xls;','select  *  from  [123$]')  as  b  inner  join  employees  on  b.number=employees.number  
     
    但我想用ofd打开excel表,怎么把这条路径传递到这条语句里面呢?
      

  10.   

    把两个DataTable结构改成一样!用DataTable.Merge