zoukankan      html  css  js  c++  java
  • 合并结构相同,不同,或多个DataTable

    1. //两个结构一样的DT合并
    2. DataTable DataTable1 = new DataTable();
    3. DataTable DataTable2 = new DataTable();
    4. DataTable newDataTable = DataTable1.Clone();
    5. object[] obj = new object[newDataTable.Columns.Count];
    6. for (int i = 0; i < DataTable1.Rows.Count; i++)
    7. {
    8.     DataTable1.Rows[i].ItemArray.CopyTo(obj,0);
    9.     newDataTable.Rows.Add(obj);
    10. }
    11. for (int i = 0; i < DataTable2.Rows.Count; i++)
    12. {
    13.     DataTable2.Rows[i].ItemArray.CopyTo(obj,0);
    14.     newDataTable.Rows.Add(obj);
    15. }
    16. //两个结构不同的DT合并
    17. /// <summary>
    18.   /// 将两个列不同的DataTable合并成一个新的DataTable
    19.   /// </summary>
    20.   /// <param name="dt1">表1</param>
    21.   /// <param name="dt2">表2</param>
    22.   /// <param name="DTName">合并后新的表名</param>
    23.   /// <returns></returns>
    24.   private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)
    25.   { 
    26.    DataTable dt3 = dt1.Clone();
    27.    for( int i = 0 ;i < dt2.Columns.Count ;i ++ )
    28.    {
    29.     dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;
    30.    }
    31.    object[] obj = new object[dt3.Columns.Count];
    32.    
    33.    for (int i = 0; i < dt1.Rows.Count; i++)
    34.    {
    35.     dt1.Rows[i].ItemArray.CopyTo(obj,0);
    36.     dt3.Rows.Add(obj);
    37.    }
    38.       
    39.    if( dt1.Rows.Count >= dt2.Rows.Count )
    40.    {
    41.     for( int i = 0 ;i < dt2.Rows.Count ;i++ )
    42.     {
    43.      for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
    44.      {
    45.       dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
    46.      }
    47.     }
    48.    }
    49.    else
    50.    {
    51.     DataRow dr3 ;
    52.     for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )
    53.     {
    54.      dr3 = dt3.NewRow() ;
    55.      dt3.Rows.Add( dr3 ) ;
    56.     }
    57.     for( int i = 0 ;i < dt2.Rows.Count ;i++ )
    58.     {
    59.      for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
    60.      {
    61.       dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
    62.      }
    63.     }
    64.    }
    65.    dt3.TableName = DTName ; //设置DT的名字
    66.    return dt3 ;
    67.   }
    68. //多个 结构相同的DataTable合并
    69.         public DataTable GetAllEntrysDataTable()
    70.         {
    71.             DataTable newDataTable = GetEntrysDataTable(0).Clone();
    72.             object[] obj = new object[newDataTable.Columns.Count];
    73.             for (int i = 0; i < entryGroups.GetEntryGroupCount(); i++)
    74.             {
    75.                 for (int j = 0; j < GetEntrysDataTable(i).Rows.Count; j++)
    76.                 {
    77.                     GetEntrysDataTable(i).Rows[j].ItemArray.CopyTo(obj, 0);
    78.                     newDataTable.Rows.Add(obj);
    79.                 }
    80.             }
    81.             return newDataTable;
    82.         } 
  • 相关阅读:
    texarea动态改变监听
    输入配置
    linux 上安装redis 解压之后使用make命令报错
    sql语句能查询出 放在web程序查询不出
    Eclipse 使用git pull 代码时发生冲突的解决办法
    eclipse git 解决冲突
    微信小程序获取openid
    mybatis 一对多 一对一 xml配置
    Eclipse 中撤消git push提交
    idea 开发中遇到的问题
  • 原文地址:https://www.cnblogs.com/kaiwanlin/p/5773635.html
Copyright © 2011-2022 走看看