• DataTable 分批处理,每批处理4行


    ZZ

    --

    /// <summary>
            /// 分批处理。
            /// </summary>
            public void PartialProc()
            {
                int per_count = 4;//每个datatable行数。每4行处理一次。
                DataTable dt = new DataTable();
                dt.Columns.Add("barcode");
                dt.Columns.Add("qty");
                dt.Rows.Add("a", "1");
                dt.Rows.Add("b", "1");
                dt.Rows.Add("c", "1");
                dt.Rows.Add("d", "1");
                dt.Rows.Add("e", "1");
                dt.Rows.Add("f", "1");
                dt.Rows.Add("g", "1");
                dt.Rows.Add("h", "1");
                dt.Rows.Add("i", "1");
                dt.Rows.Add("j", "1");
                dt.Rows.Add("k", "1");
    
                DataTable dtPer = dt.Clone();
                int count = dt.Rows.Count;
                int pages = count % per_count == 0 ? count / per_count : count / per_count + 1;//最终DataTable个数
                List<DataTable> list = new List<DataTable>();
                for (int i = 0; i < pages; i++)
                {
                    #region 这个是LINQ方式
                    //list.Add(dt.AsEnumerable().Skip(i * pre_count).Take(pre_count).CopyToDataTable());
                    #endregion
    
                    #region 这个是LINQ方式
                    if (i == pages - 1)
                    {
                        dtPer = dt.Clone();
                        for (int j = i * per_count; j < count; j++)
                        {
                            dtPer.Rows.Add(dt.Rows[j][0], dt.Rows[j][1]);
                        }
    
                        DoIt(dtPer);
                    }
                    else
                    {
                        dtPer = dt.Clone();
                        for (int j = i * per_count; j < (i + 1) * per_count; j++)
                        {
                            dtPer.Rows.Add(dt.Rows[j][0], dt.Rows[j][1]);
                        }
    
                        DoIt(dtPer);
                    }
                    #endregion
                }
                //list为最终拆分的DataTable集合
                string som2 = string.Empty;
            }
    
            public void DoIt(DataTable dtProc)
            { 
                
            }

    ZZ

    --

    ZZ

  • 相关阅读:
    开源.NET FTP组件edtFTPnet 用法
    C#开发的较好的FTP类
    C# 配置文件读取与修改
    对于List的All,Any,Where,FirstOrDefault,Average,Sum,Distinct,Union,AddRange,RemoveRange,InsertRange,GetRange操作
    一次性打印多个C1FlexGrid
    Word自动生成目录页码靠右对齐
    Windows Workflow学习文档
    Windows Workflow开发演练
    Boo who
    Missing letters
  • 原文地址:https://www.cnblogs.com/runliuv/p/3366884.html
Copyright © 2020-2023  润新知