C# 将DataTable一行放入另一个DataTable中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 将DataTable一行放入另一个DataTable中相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/huyu107/article/details/53509171

 

 

概述

从一个DataTable中取一行放到另一个DataTable里报错: 该行已经属于另一个表

第一种方法:

DataTable dt = new DataTable();
dt = ds.Tables["All"].Clone();//克隆All的结构传递给dt
DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行
for(int i=0;i<dr.Length;i++)
{
    //将数组元素加入表...
    dt.Rows.Add(dr[i]);//出错提示为:该行已经属于另一个表
}
// 修改后
DataTable dt = new DataTable();
dt = ds.Tables["All"].Clone();//克隆All的结构传递给dt
DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行
for(int i=0;i<dr.Length;i++)
{
    //将数组元素加入表...
    dt.Rows.Add(dr[i].ItemArray);
}

第二种方法:

DataTable dt1 = new DataTable();
DataTable calcdt = new DataTable();
// dt1只是获取表结构,无数据;
// calcdt 有表结构,有数据
// 原方法
foreach (DataRow dr in calcdt.Rows)
{
    dt1.Rows.Add(dr);
}

// 改进后的方法
DataRow drcalc;
foreach (DataRow dr in calcdt.Rows)
{
    drcalc = dt1.NewRow();
    drcalc.ItemArray = dr.ItemArray;
    dt1.Rows.Add(drcalc);
}

以上是关于C# 将DataTable一行放入另一个DataTable中的主要内容,如果未能解决你的问题,请参考以下文章

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

如何把DataTable里查询的结果放入另以个DataTable

C#如何把DataTable更新到Access数据库

datagridview怎么把一行数据复制到另一个datagridview [C# VS2005]

asp.net c# 如何取出datatable指定行的值

C#连接数据库是用到的控件DataTable怎么访问其中具体的一个值,比如,第一行第一列的值???