合并两个dataTable中的数据

        //方式一:
             SqlConnection myConnection=new SqlConnection("server=localhost;uid=sa;pwd=;database=wjoa");
             string sql1="select * from ResourseManage_T";
             SqlDataAdapter adapterA=new SqlDataAdapter(sql1,myConnection);
             DataSet ds=new DataSet();
             adapterA.Fill(ds,"a");
             string sql2="select * from UserLogin_t";
                 
             if(myConnection.State != ConnectionState.Closed)
             myConnection.Close();
             adapterA=new SqlDataAdapter(sql2, myConnection);
             adapterA.Fill(ds,"b");
             DataTable dtParent=ds.Tables["a"];
             DataTable dtChild=ds.Tables["b"];
             DataRow dr;
             for(int i=0;i<dtChild.Rows.Count;i++)
             {     
                 dr=dtParent.NewRow();
                 for(int j=0;j<dtParent.Columns.Count;j++)
                 {
                     dr[j]=dtChild.Rows[i][j];
                 }
                 dtParent.Rows.Add(dr);
             }
             this.DataGrid1.DataSource=ds.Tables["a"].DefaultView;
             this.DataGrid1.DataBind();
      //方式二:
DataTable DataTable1 = new DataTable();    
DataTable DataTable2 = new DataTable();    
DataTable newDataTable = DataTable1.Clone();    
  
object[] obj = new object[newDataTable.Columns.Count];    
for (int i = 0; i < DataTable1.Rows.Count; i++)    
{    
    DataTable1.Rows[i].ItemArray.CopyTo(obj,0);    
    newDataTable.Rows.Add(obj);    
}    
for (int i = 0; i < DataTable2.Rows.Count; i++)    
{    
    DataTable2.Rows[i].ItemArray.CopyTo(obj,0);    
    newDataTable.Rows.Add(obj);    
}   
//或者   
DataTable DataTable1 = new DataTable();    
DataTable DataTable2 = new DataTable();    
  
object[] obj = new object[DataTable1 .Columns.Count];    
for (int i = 0; i < DataTable2.Rows.Count; i++)    
{    
    DataTable2.Rows[i].ItemArray.CopyTo(obj,0);    
    DataTable1.Rows.Add(obj);    
}  
 
方式三:
/// <summary>    
/// 将两个列不同的DataTable合并成一个新的DataTable    
/// </summary>    
/// <param name="dt1">Table表1</param>    
/// <param name="dt2">Table表2</param>    
/// <param name="DTName">合并后新的表名</param>    
/// <returns></returns>   
  
private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)    
{     
 DataTable dt3 = dt1.Clone();    
 for( int i = 0 ;i < dt2.Columns.Count ;i ++ )    
 {    
  dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;    
 }    
 object[] obj = new object[dt3.Columns.Count];    
     
 for (int i = 0; i < dt1.Rows.Count; i++)    
 {    
  dt1.Rows[i].ItemArray.CopyTo(obj,0);    
  dt3.Rows.Add(obj);    
 }    
        
 if( dt1.Rows.Count >= dt2.Rows.Count )    
 {    
  for( int i = 0 ;i < dt2.Rows.Count ;i++ )    
  {    
   for( int j = 0 ;j < dt2.Columns.Count ;j ++ )    
   {    
    dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;    
   }    
  }    
 }    
 else    
 {    
  DataRow dr3 ;    
  for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )    
  {    
   dr3 = dt3.NewRow() ;    
   dt3.Rows.Add( dr3 ) ;    
  }    
  for( int i = 0 ;i < dt2.Rows.Count ;i++ )    
  {    
   for( int j = 0 ;j < dt2.Columns.Count ;j ++ )    
   {    
    dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;    
   }    
  }    
 }    
 dt3.TableName = DTName ;    
 return dt3 ;    
}   
 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值