无法将数据列从一个数据表复制到另一个数据表

Ana*_*nth 9 .net c# datatable

如何将1个数据列中的1个数据列复制到新的数据表中.当我尝试这样做时,我得到错误列'XXX'已经属于另一个DataTable.?

dataColumn = datatable1.Columns[1];
datatable2 = new DataTable();
datatable2.Columns.Add(dataColumn);
Run Code Online (Sandbox Code Playgroud)

提前致谢

Lan*_*ane 9

您无法复制DataColumns.您需要做的是在新数据表中创建一个与旧数据表列中相同数据类型的新DataColumn,然后您需要运行FOR循环以将旧数据表中的所有数据引入新数据数据表.

请参阅以下代码.这假设数据表具有完全相同的行数.

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();

dt2.Columns.Add("ColumnA", dt1.Columns["ColumnA"].DataType);

for (int i = 0; i < dt1.Rows.Count; i++)
{
    dt2.Rows[i]["ColumnA"] = dt1.Rows[i]["ColumnA"];
}

此外,如果要复制的数据是引用类型而不是值类型,您可能希望查看.Clone()方法是否可用于该类型,或者自己创建一个.只是在FOR循环中执行'this = that'对引用类型不起作用.