如何把一个datatable按列拆分成多个表?
例如:datatable  A有15列,现在需要以5列为单位,进行表的拆分,如何弄?

解决方案 »

  1.   


                DataTable dt = xxx(); //获取到一个DataTable
                Hashtable hashtable = new Hashtable();
                for (int i = 0, j = dt.Rows.Count; i < j; i++)
                {
                    DataRow dr = dt.Rows[i];
                    string downTableName = dr["DownTableName"].ToString();
                    DataTable inTable = null;
                    if (hashtable.ContainsKey(downTableName))
                    {
                        inTable = hashtable[downTableName] as DataTable;
                    }
                    else
                    {
                        inTable = dt.Clone();
                        hashtable[downTableName] = inTable;
                    }
                    DataRow addDr = inTable.NewRow();
                    addDr.ItemArray = dr.ItemArray;
                    inTable.Rows.Add(addDr);
                }现在HashTable里面存放的就是几个表了。我们可以这样循环,把表逐个取出来foreach(string key in hashtable.Keys)
    {
        DataTable dt = hashtable[key] as DataTable;
    }
      

  2.   

    或参考
    http://www.cnblogs.com/kylemo/archive/2011/07/31/2122640.html