【问题标题】:Break datatable into multiple tables by columns not rows按列而不是行将数据表分成多个表
【发布时间】:2018-09-28 02:08:57
【问题描述】:

我有一个包含如下列的数据表

我想将数据表拆分为多个数据表,方法是将列拆分为每组 4 列,如下所示

我可以通过简单地使用循环和一些计算来做到这一点,但如果有人有的话,我想获得更好的方法。

【问题讨论】:

  • 你能修改原始数据表的数据源代码吗?你能把它分成 4 个不同的数据源,并从 4 个新数据源构建 4 个不同的数据表吗?
  • 实际上数据来自使用存储过程的 sql server 数据库,该存储过程具有长查询和许多连接。我不认为我可以拆分主数据源。

标签: c# linq datatable dataset


【解决方案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);
        }

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2020-12-24
    • 2013-08-04
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多