将特定数据集列复制到数据表
本文关键字:复制 数据表 数据集 | 更新日期: 2023-09-27 18:29:42
我有一个读取xml数据的DataSet,它几乎有20列,我需要数据集中的5列。我已经在我的级别上尝试过了,但无法获得具有我需要的特定列的DataTable。我试过的一些代码是:
DataTable dt = new DataTable(); //dt is blank DataTable
DataSet ds = new DataSet(); //ds is existing DataSet which has single table in it
dt.Columns[0]=dst4.Tables[0].Columns[0];
dt.Columns.Add(dst4.Tables[0].Columns[0]);
ds.Tables.Add(dt)
dst4.Tables.Columns.Add(dt);
您可以克隆创建一个具有相同列的空表的表,然后删除多余列。下面是一个带有命名列的示例,您也可以使用索引:
DataTable dt = ds.Tables[0].Clone();
var colToTake = new[] { "Col1", "Col3", "Col7", "Col15", "Col19" };
var colsToRemove = dt.Columns.Cast<DataColumn>()
.Where(c => !colToTake.Contains(c.ColumnName));
foreach (DataColumn colToRemove in colsToRemove)
dt.Columns.Remove(colToRemove);
说您必须将列"ColumnName1"、"ColumnName2"、"ColumnName3"、"olumnName4"answers"ColumnName5"复制到新的DataTable
DataTable source = dst4.Tables[0];
DataTable dt = source.DefaultView.ToTable(false, "ColumnName1", "ColumnName2", "ColumnName3", "ColumnName4", "ColumnName5");