如何在table1前面加上另一个table2两个table的列数可能不一样?该如何实现呢? 

解决方案 »

  1.   

    列结构不一样不好合并吧,为什么要合并呢? 一个DataSet倒是可以包含多个DataTable
      

  2.   

    1‘把table2的column都加到,table1里
    2、循环table1的row,把关联的table2的row数据写入
      

  3.   

    先搞清楚两table有没有相同列,有的话用共同的列,没有的话在table1里加上table2的列。个人建议可以考虑父子表的设计,父表存公共字段,子表存特殊字段。正好和C#的父对象子对象有对应关系 。
      

  4.   

    项目正好也用到了,直接用这个方法就可以了    #region "合并Datatable生产新的Datatable"
         public static   DataTable Merge(params DataTable[] tables)
            {
                DataTable newtable = new DataTable();
                int rowCount = 0;
                foreach (DataTable t in tables)
                {
                    foreach (DataColumn c in t.Columns)
                    {
                        newtable.Columns.Add(c.ColumnName, c.DataType);
                    }
                    rowCount = t.Rows.Count > rowCount ? t.Rows.Count : rowCount;
                }
                for (int i = 0; i < rowCount; i++)
                {
                    object[] rowItems = new object[newtable.Columns.Count];
                    object[] obj = null;
                    int index = 0;
                    foreach (DataTable t in tables)
                    {
                        obj = t.Rows.Count > i ? t.Rows[i].ItemArray : new object[t.Columns.Count];
                        obj.CopyTo(rowItems, index);
                        index += obj.Length;
                    }
                    newtable.Rows.Add(rowItems);
                }
                return newtable;
            } 
        #endregion