• 转载CSDN(educast):c# 对两个Datatable的结构相同进行合并


      Datatable db=null;
            DataTable dt 
    = ds.Tables[0];
            
    ////两个datatable进行合并
             db = dt.Copy();
            DataRow[] foundRows 
    = dt.Select();
            
    for (int i = 0; i < foundRows.Length;i++)
            {
                db.ImportRow(foundRows[i]);
            }

    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.    forint 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.     forint i = 0 ;i < dt2.Rows.Count ;i++ )
    42.     {
    43.      forint 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.     forint i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )
    53.     {
    54.      dr3 = dt3.NewRow() ;
    55.      dt3.Rows.Add( dr3 ) ;
    56.     }
    57.     forint i = 0 ;i < dt2.Rows.Count ;i++ )
    58.     {
    59.      forint 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.         } 
  • 相关阅读:
    oracle 3大范式 理解
    RobHess的SIFT代码解析之RANSAC
    RobHess的SIFT代码解析步骤四
    RobHess的SIFT代码解析步骤三
    RobHess的SIFT代码解析步骤二
    《我的十年图像生涯》—王郑耀(西安交通大学)
    图像卷积
    多尺度分析方法及表达方式
    图像处理中双线性插值
    程序面试题——C实现
  • 原文地址:https://www.cnblogs.com/Jack_G/p/2174926.html
Copyright © 2020-2023  润新知