结构不同两个个DataTable数据如何合并到新的DataTable中。如DataTable a 中有字段 “ISD”"FDE"两个字段,从数据库中获取的数据信息,DataTable b中有 “IS”一个字段,从数据库中获取的数据信息,新的DataTable c自己建立的有“ISD”"FDE"“IS”三个字段,如何把a,b两个DataTable数据合并到新的DataTable c 中?请教大家!

解决方案 »

  1.   

    我想问一下表a和表b之间有什么关系没?Is there any relationships between Table A and Table B? Or I do not know when and how to add field "IS" value to table C exactly.
      

  2.   

    将你的问题举成具体的例子让比较好理解两个datatable里的具体数据和最终结果是什么样子的
      

  3.   

    确定DataTable a 和 b 没有联系的字段吗?
      

  4.   

    应该可以使用merge方法对a,b,c进行两两合并,不过合并前必须为每个datatable设置主键,关联的字段名称必须一样
      

  5.   

    DataTalbe.Merge 需要在两个表指定主键用于区分不同实体
      

  6.   

    DataTable dt1=new DataTable();  
    dt1.Columns.Add("ID",typeof(int));  
    dt1.Columns.Add("Name",typeof(string));  
    dt1.PrimaryKey=new DataColumn[] { dt1.Columns[0] };  DataTable dt2=new DataTable();  
    dt2.Columns.Add("ID",typeof(int));  
    dt2.Columns.Add("MC",typeof(string));DataTable dt3= dt1.Copy();  
    dt3.Merge(dt2);  
    DataTable curDt = dt2.Copy(); //curDt存放合并后的值  
    if(!curDt.Columns.Cotains("B")) curDt.Columns.Add("B");  for(int r = 0; r < dt2.Rows.Count; r++)  
    {  
    DataRow dr = dt2.Rows[r];  
    string aValue = dr["A"].ToString().ToUpper();  
    foreach(DataRow tDr in dt1.Rows)  
    {  
    string tValue = tDr["A"].ToString().ToUpper();  
    if(tValue == aValue)  
    {  
    curDt.Rows[r]["B"] = tDr["B"];  
    break;  
    }  
    }  

    select 
    union
      

  7.   

    两个表之间有没有键关联?
    如果有用就先在SQL下合并。
    没有那就只能用楼上的方法解决了
      

  8.   

     当然你可以都取出来;
    DataSet ds = new DataSet();
    ds.Relationsf去合并  
    ds.Relations.Add("EMPLOYEES_JOBS_RELATION",
      ds.Tables["表1"].Columns["JOB_ID"],
      ds.Tables["表2"].Columns["JOB_ID"]);
      

  9.   

    7楼 的 方法有道理,把1和2量表的数据拼接到table 3中