我想将数据从dataColumn移到dataTable中的特定列。我不确定如何在Datatable中指定要添加datacolumn的列。

        foreach (DataColumn col in dt.Columns)
        {
            dt1.Columns.Add(col);
        }

我收到异常Column 'X' already belongs to another DataTable.

最佳答案

您需要复制ColumnName之类的属性并创建新的DataColumns:

foreach (DataColumn col in dt.Columns)
{
    dt1.Columns.Add(col.ColumnName, col.DataType);
}

添加已经属于另一个DataTable的ArgumentException时,就有了DataColumn的原因。允许这样做非常危险,因为DataTable在其列中保留reference,并且每列在其DataTable中都保留reference。如果您要将列添加到另一个表中,则您的代码迟早会失效。

如果您还想将DataRows复制到新表中:
foreach (DataRow row in t1.Rows)
{
    var r = t2.Rows.Add();
    foreach (DataColumn col in t2.Columns)
    {
        r[col.ColumnName] = row[col.ColumnName];
    }
}

关于c# - 将DataColumn添加到DataTable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11563731/

10-15 06:17