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.         } 
  • 相关阅读:
    ios tablevie 圆角
    IOS window(窗口)、视图(view)frame的学习
    iOS 测试用代码
    自定义导航条UINavigationbar
    前端正则表达式书写以及常用的方法
    JavaScript中的类、原型、原型链、继承(转载)
    简单详细讲解js闭包(转载)
    前端中的事件循环eventloop机制(转载)
    CSS优化技巧,可缩短页面加载时间(转载)
    程序员如何快速提高编程能力?快来看大牛的方法(转)
  • 原文地址:https://www.cnblogs.com/kaiwanlin/p/5773635.html
Copyright © 2011-2022 走看看