仅将具有数据的第一列从一个DataTable复制到另一个新DataTable

时间:2019-03-18 17:53:48

标签: c# asp.net

我的DataTable有许多列,超过35列。其中,我想将第一列“ SYMBOL_QA”数据复制到另一个新的DataTable

我在互联网上进行搜索,但没有找到任何合适的方法。我发现的一种方法是照原样复制整个DataTable,然后删除不需要的列。但是我有35列,并且一一删除它们都是不好的方法。

protected void SendDataTable(DataTable dSource)
{
    DataTable dTarget = new DataTable();
    dTarget.Columns.Add(new DataColumn("SYMBOL_QA_"));
    int rowIdx = 0;
    dTarget.AsEnumerable().All(row => { row["SYMBOL_QA_"] = dSource.Rows[rowIdx++]["SYMBOL_QA"]; return true; });

}

此代码块不起作用。我该怎么办?

2 个答案:

答案 0 :(得分:3)

我认为最简单的方法是通过DataView.ToTable方法

DataTable dTarget = dSource.DefaultView.ToTable(false, "SYMBOL_QA");

这只是一行而已

  

根据现有行中的行创建并返回新的DataTable   数据视图。

答案 1 :(得分:1)

protected DataTable CopyColumn(DataTable sourceTable, string columnName)
{
    DataTable result = new DataTable();
    result.Columns.Add(new DataColumn(columnName));

    foreach(DataRow sourceRow in sourceTable.Rows)
    {
         var destRow = result.NewRow();
         destRow[columnName] = sourceRow[columnName];
         result.Rows.Add(destRow);
    }
    return result;
}