按行而不是行将数据表分成多个表

时间:2018-04-18 00:43:00

标签: c# linq datatable dataset

我有一个数据表,其中包含如下所示的列

enter image description here

我希望通过使用每组4列分割列来将数据表分成多个数据表

enter image description here

我可以通过使用循环和一些计算来实现它,但是如果有人想要更好的方法。

1 个答案:

答案 0 :(得分:1)

DataTable有一个复制方法,你可以使用它,并删除你不需要的列。

https://msdn.microsoft.com/en-us/library/system.data.datatable.copy(v=vs.110).aspx

        System.Data.DataTable tbl = new System.Data.DataTable();
        // Add Dummy Columns
        for (int i = 0; i <= 11; i++)
        {
            tbl.Columns.Add(i.ToString());
        }

        // Assume We Have Data

        // Split Table Into Lists of Tables
        List <System.Data.DataTable> tables = new List<System.Data.DataTable>();
        for ( int i = 0; i <= 2; i++)
        {
            int firstColumn = i * 4;
            int lastColumn = i * 4 + 3;
            System.Data.DataTable tblCopy = tbl.Copy();
            for ( int j = 0; j < tbl.Columns.Count; j++)
            {
                if (j < firstColumn || j > lastColumn)
                    tblCopy.Columns.Remove(tbl.Columns[j].ColumnName);
            }

            tables.Add(tblCopy);
        }