zoukankan      html  css  js  c++  java
  • C#将DataTable按固定个数拆分成多个表

    项目中出现数据量特别大的DataTable,做循环处理时比较慢,

    需要将DataTable拆分成多个做多线程处理。

    将DataTable拆分成多个加到DataSet里,用的时候遍历DataSet就可以了

    拆分的方法如下:

            /// <summary>
            /// 分解数据表
            /// </summary>
            /// <param name="orgTable">需要分解的表</param>
            /// <param name="rowsNum">每个表包含的数据量</param>
            /// <returns></returns>
            public static DataSet SplitDataTable(DataTable orgTable, int rowsNum)
            {
                var ds = new DataSet();
                if (rowsNum <= 0 || orgTable.Rows.Count <= 0)
                {
                    ds.Tables.Add(orgTable);
                    return ds;
                }
                var tableNum = Convert.ToInt32(Math.Ceiling(orgTable.Rows.Count * 1.0 / rowsNum));
                var remainder = orgTable.Rows.Count % rowsNum;
                if (tableNum == 1)
                {
                    ds.Tables.Add(orgTable);
                }
                else
                {
                    for (var i = 0; i < tableNum; i++)
                    {
                        var table = orgTable.Clone();
                        int num;
                        if (i != tableNum - 1)
                            num = rowsNum;
                        else
                            num = remainder > 0 ? remainder : rowsNum;
                        for (var j = 0; j < num; j++)
                        {
                            var row = orgTable.Rows[i * rowsNum + j];
                            table.ImportRow(row);
                        }
                        ds.Tables.Add(table);
                    }
                }
                return ds;
            }
    作者:九年新
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    puppet之模板和类
    puppet之资源
    puppet自动化安装服务
    puppet自动化搭建lnmp架构
    puppet工简介一
    CDN杂谈
    cdn工作原理
    mysql之innodb存储引擎
    Android应用开发基础篇(11)-----ViewFlipper
    Android应用开发基础篇(10)-----Menu(菜单)
  • 原文地址:https://www.cnblogs.com/yellow3gold/p/14293946.html
Copyright © 2011-2022 走看看