将DataColumn添加到DataTable

esc*_*son 7 c# datatable

我想将数据从a移动dataColumn到我的特定列dataTable.我不知道如何指定Datatable我想要添加的列中的哪一列datacolumn.

        foreach (DataColumn col in dt.Columns)
        {
            dt1.Columns.Add(col);
        }
Run Code Online (Sandbox Code Playgroud)

我收到一个例外 Column 'X' already belongs to another DataTable.

Tim*_*ter 18

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

foreach (DataColumn col in dt.Columns)
{
    dt1.Columns.Add(col.ColumnName, col.DataType);
}
Run Code Online (Sandbox Code Playgroud)

ArgumentException添加DataColumn已经属于另一个DataTable 的时间是有原因的.允许这样做是非常危险的,因为a DataTable保存对其列的引用,并且每列都包含对它的DataTable 的引用.如果您要将列添加到另一个表中,您的代码迟早会被破坏.

如果您还想将其复制DataRows到新表中:

foreach (DataRow row in t1.Rows)
{
    var r = t2.Rows.Add();
    foreach (DataColumn col in t2.Columns)
    {
        r[col.ColumnName] = row[col.ColumnName];
    }
}
Run Code Online (Sandbox Code Playgroud)