c#将一个datatable分解成多个datatable(代码片段)

我本梁人 我本梁人     2022-12-26     556

关键词:

     今天在做项目时需要将一个DataTable分解成多个DataTable分批传入函数里面,于是在网上找寻了一番,修复了  存在分表的缺陷的代码。

   分表方法:

        /// <summary>
        /// 分解数据表
        /// </summary>
        /// <param name="originalTab">需要分解的表</param>
        /// <param name="rowsNum">每个表包含的数据量</param>
        /// <returns></returns> 
        public static DataSet SplitDataTable(DataTable originalTab, int rowsNum)
        

            int tableNum = System.Convert.ToInt32(originalTab.Rows.Count / rowsNum); //相除取整
            int remainder = System.Convert.ToInt32(originalTab.Rows.Count % rowsNum); //相除取余数
            DataSet ds = new DataSet();
            //if one table is big enough to store, use one table
            if (tableNum == 0)
            
                ds.Tables.Add(originalTab);
            
            else
            

                if (remainder > 0) //如果有余数,需要多一张表存余数
                
                    tableNum++;
                

                DataTable[] tableSlice = new DataTable[tableNum - 1 + 1];

                //Save orginal columns into new table
                int c = 0;
                for (c = 0; c <= (tableNum - 1); c++)
                
                    tableSlice[c] = new DataTable();
                    foreach (DataColumn dc in originalTab.Columns)
                    
                        tableSlice[c].Columns.Add(dc.ColumnName, dc.DataType);
                    
                

                //Import Rows
                int i = 0;
                if (remainder > 0)
                
                    for (i = 0; i <= (tableNum - 1); i++)
                    
                        //if the current table is not the last table
                        if (i != tableNum - 1)
                        
                            int j = 0;
                            for (j = i * rowsNum; j <= (((i + 1) * rowsNum) - 1); j++)
                            
                                tableSlice[i].ImportRow(originalTab.Rows[j]);
                            
                        
                        else
                        
                            int k = 0;
                            //For k = i * rowsNum To (((i + 1) * rowsNum + remainder) - 1)
                            for (k = i * rowsNum; k <= ((i * rowsNum + remainder) - 1); k++)
                            
                                tableSlice[i].ImportRow(originalTab.Rows[k]);
                            
                        
                    
                
                else
                
                    for (i = 0; i <= (tableNum - 1); i++)
                    
                        int j = 0;
                        for (j = i * rowsNum; j <= (((i + 1) * rowsNum) - 1); j++)
                        
                            tableSlice[i].ImportRow(originalTab.Rows[j]);
                        
                    
                

                //Add all tables into a dataset
                foreach (DataTable dt in tableSlice)
                
                    ds.Tables.Add(dt);
                
            

            return ds; 
        

 

   

c#将datatable转换成list的方法

本文实例讲述了C#将DataTable转换成list及数据分页的方法。分享给大家供大家参考。具体如下:///<summary>  ///酒店评论列表-分页 ///</summary> ///<paramname="userId"></param> ///<paramname="pageIndex 查看详情

linux将一个文件分解成多个不同名文件

1.通过c直接实现#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>intfileNum=0;charfileNam[10];charfileName(){ 查看详情

c#将datatable数据源转换成实体类

1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Data;4usingSystem.Reflection;56///<summary>7///将DataTable数据源转换成实体类8///</summary>9///<typeparamname="T">实体</typeparam> 查看详情

c#如何将多个单行多列的datatable合并成一个单行多列的datatable,表中内容是string..

...merge函数只针对同类型的数据表;这种情况需要自己定义一个函数。我可以举个例子Dt1=MergeDataTable(Dt1,Dt2,"ID");下面是函数定义:...参考技术A合并datatable,手动创建datatable,然后将数据合并到第一个的指定的行和列中,这... 查看详情

SevenZipSharp - 如何使用 c# 将多个目录压缩成一个文件?

】SevenZipSharp-如何使用c#将多个目录压缩成一个文件?【英文标题】:SevenZipSharp-howtocompressmultipledirectoriesintoasinglefileusingc#?【发布时间】:2013-08-0919:34:41【问题描述】:我想使用SevenZipCompressor将3个文件夹压缩成一个文件。我知道... 查看详情

c#将datatable的某一列转换成json格式的字符串

将datatable的某一列转换成json格式的字符串(转换完后自己在字符串前后加{})///<summary>///DataTable装换 Column数据 组合成json现在的格式 ///</summary>///<paramname="dt"></param>///<paramname="rowIndex"& 查看详情

c# linq let 语句用视图模型分解成碎片

...【问题描述】:好的,所以我正在尝试使用查询语法构建一个linq语句。我希望有更多的过滤条件功能,以及包含特定条件的最终多个配置。这里的流程有效publicasyncTask<IEnumerable<Shoe>>G 查看详情

将datatable转换成csv文件

...在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片... 查看详情

将datatable转换成csv文件

...在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片... 查看详情

将datatable转换成csv文件

...在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片... 查看详情

c#将datatable一行放入另一个datatable中

http://blog.csdn.net/huyu107/article/details/53509171  概述从一个DataTable中取一行放到另一个DataTable里报错:该行已经属于另一个表。第一种方法:DataTabledt=newDataTable();dt=ds.Tables["All"].Clone();//克隆All的结构传递给dtDataRow[]dr= 查看详情

从 C# 中的存储过程返回多个记录集

...0121:13:23【问题描述】:我必须将ASP经典系统转换为C#我有一个存储过程,最多可以返回7个记录集(取决于传入的参数)。我需要知道如何简单地将所有记录集作为单独的DataTables返回,这样我就可以遍历所有的数据表,当我到达... 查看详情

同一页面上的多个 DataTables 具有不同的 ajax 源

...axsources【发布时间】:2011-12-1107:05:36【问题描述】:我在一个页面上使用dataTables有多个表格。每个都需要有自己的“sAjaxSource”。我似乎无法弄清楚如何做到这一点。这是我拥有的最少代码: varoTable=$(\'.datata 查看详情

推荐算法——非负矩阵分解(nmf)

...行分解。从而实现对未打分项进行打分。矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积。对于上述的用户-商品矩阵(评分矩阵),记为Vm×nV_{m imesn}。能够将其分解成两个或者多个矩阵的乘积,如果分解成两个矩阵Wm×kW_{... 查看详情

c#怎么将json转换成datatable

["hasChildNode":"1","nodeId":"200","nodeName":"医药","nodeType":"文件夹","hasChildNode":"1","nodeId":"234","nodeName":"财会","nodeType":"... 查看详情

c#将linq数据集转换为datatable

C#将LINQ数据集转换为Datatable1.方法一:(测试可用)//通过一个公共类将LINQ数据集转换为datatablepublic DataTable LINQToDataTable<T>(IEnumerable<T>varlist){    DataTable dtReturn= ne 查看详情

C#如何将两个DataTable Row合并为一行

...ntoonerow【发布时间】:2021-01-1001:10:00【问题描述】:我有一个如下所示的数据表,它是从数据库中填充的我怎样才能使结果如下所示抱歉我的解释不好,非常感谢【问题讨论】:做一个GROUPBY..问题是,这个数据表我已经手动从另... 查看详情

c#把字符串中间的多个连续的空格转化成一个空格

...split函数来分割,最后想到的办法是,将连续的空格转成一个空格,然后使用split分割,这样就好办了。这里使用的原理是:使用正则表达式,所以文件要引用usingSystem.Text.RegularExpressions;(鼠标移到代码上去,在代码的顶部会出现... 查看详情