DataTable复制数据,深度复制

 /**/
    /// <summary>
    /// 复制数据,深度复制
    /// </summary>
    /// <param name="dataSourceRow">数据源,待复制的数据</param>
    /// <param name="dataStruct">数据结构/表结构</param>
    /// <returns>处理后的DataTable</returns>
    public DataTable CopyData(DataRow[] dataSourceRow, DataTable dataStruct)
    {
        DataTable dataTable = new DataTable();
        //定义表结构
        DataColumn col;
        foreach (DataColumn column in dataStruct.Columns)
        {
            col = new DataColumn();
            col.ColumnName = column.ColumnName;
            col.DataType = column.DataType;
            //add column
        }
        foreach (DataRow row in dataSourceRow)
        {
            DataRow tempRow = dataTable.NewRow();
            foreach (DataColumn column in dataStruct.Columns)
            {
                try
                {
                    tempRow[column.ColumnName] = row[column.ColumnName];
                }
                catch
                { continue; }
            }
            dataTable.Rows.Add(tempRow);
        }
        return dataTable;
    }

 

时间: 2024-09-22 05:13:19

DataTable复制数据,深度复制的相关文章

深度解析javascript中的浅复制和深复制

     在谈javascript的浅复制和深复制之前,我们有必要在来讨论下js的数据类型.我们都知道有 Number,Boolean,String,Null,Undefined,Object五种类型.而Object又包含Function,Array 和Object自身.前面的五种类型叫做基本类型,而Object是引用类型.可能有人就要问,为什么要分基本类型和引用类型呢?后面你就会明白的.      我们首先来看看浅复制和深复制的简洁定义: 深复制:直接将数据复制给对应的变量 浅复制:将数据的地

请教一下,我怎么复制一下table的结构给一个新的表。我不要复制数据。

问题描述 请教一下,我怎么复制一下table的结构给一个新的表.我不要复制数据. 解决方案 解决方案二:clone()解决方案三:没说清楚呀,是数据库里的物理表还是内存里的逻辑表?解决方案四:数据库里的表就读到datatable或dataset中,然后clone()解决方案五:就是Clone(),专门复制表达结构.解决方案六:引用1楼zhoukang0916的回复: clone() 没错,克隆解决方案七:克隆只是浅复制吧?而楼主的意思是要深克隆.就是另一个表已经与被复制的那张表所持有的对数据的引

javascript数组的深度复制例子

一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方式,自然是循环处理.示例: function array_copy(arr) {     var out = [], i, len;     if (out[i] instanceof Array === false){      return arr;     }     for (i = 0, len = arr.len

JavaScript 数组的深度复制解析_javascript技巧

对于javascript而言,数组是引用类型,如果要想复制一个数组就要动脑袋想想了,因为包括concat.slice在内的函数,都是浅层复制.也就是说,对于一个二维数组来说,用concat来做复制,第二维的数组还是引用,修改了新数组同样会使旧数组发生改变.     于是乎,想要写一个深度复制的函数,来帮助做组数的深度复制. 一般情况下,使用 "=" 可以实现赋值.但对于数组.对象.函数等这些引用类型的数据,这个符号就不好使了. 1. 数组的简单复制 1.1 简单遍历 最简单也最基础的方

Excel数据表复制到Word后出现越界怎么办

  Excel中的数据表复制到Word后,表格样式常会出现越界的情况,超出版心,内容被截掉了. 遇到这种问题肿么办?这里有两种解决办法. ● 自动重排 再现完整内容 之所以会出现上面这样的情况,主要是因为Word文档中表格的"自动调整"属性默认为"根据内容调整表格",如果要转换的Excel工作表的数据宽度超过了当前Word文档页面的宽度,直接粘贴之后就会发生表格被截掉的混乱. 要想解决这个问题,请不要急着手动拖拽表格,那样可能会乱上加乱.而是首先需要选中该表格,右击

Excel设置了公式的单元格数据如何复制

  1.打开要复制数据的表格,可以看到总成绩那一列的数据使用公式生成的. 2.选择好要复制的数据,然后点击右键,点击"复制". 3.在要粘贴的表格处单击鼠标右键,点击"选择性粘贴". 4.在"选择性粘贴"对话框中选择"数据"选项并点击"确定".

HDFS源码分析数据块复制选取复制源节点

        数据块的复制当然需要一个源数据节点,从其上拷贝数据块至目标数据节点.那么数据块复制是如何选取复制源节点的呢?本文我们将针对这一问题进行研究.         在BlockManager中,chooseSourceDatanode()方法就是用来选取数据块复制时的源节点的,它负责解析数据块所属数据节点列表,并选择一个,用它作为数据块的复制源.其核心逻辑如下:         我们优先选择正处于退役过程中的数据节点而不是其他节点,因为前者没有写数据传输量因此相对不是很繁忙.我们不使用

ios-滚动UITableView时复制数据

问题描述 滚动UITableView时复制数据 表最开始时一切正常,但是如果上下滚动,label就会出现复制内容. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"CellIdentifier"; UITableViewCell *cell = [tableV

《C++ AMP:用Visual C++加速大规模并行计算》——3.8 在CPU和GPU之间复制数据

3.8 在CPU和GPU之间复制数据 C++ AMP:用Visual C++加速大规模并行计算 数据可以在CPU和加速器(通常是GPU)之间自动复制,也可以根据需要使用amp.h中众多的copy()重载函数之一显式复制.例如,我们可以在默认加速器上构造array,然后仅使用一条函数调用便可以把数据复制进去: array<int, 1> a(5, v.begin(), v.end()); 此外,我们还可以构造空数组,然后再使用copy()函数来加载数据.array_view在CPU上有一个对应容