我的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; });
}
此代码块不起作用。我该怎么办?
答案 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;
}