日期:2014-05-18  浏览次数:21261 次

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

------解决方案--------------------
新建表,添加列,复制行,移除列,OK
------解决方案--------------------
C# code

            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;
}

------解决方案--------------------
或参考
http://www.cnblogs.com/kylemo/archive/2011/07/31/2122640.html
------解决方案--------------------
1、新建表,
2、添加列,
3、遍历复制行到新表,
4、移除旧表列。



------
店家乐免费服装管理软件|服装销售管理软件|服装进销存软件|服装收银软件|服装店管理软件|免费进销存软件