我们如何使用一个数据表中的数据复制一个数据列到另一个数据表?我有像
这样的数据表DataTable datatable1=new DataTable();
并且该表中有四列,但我只想要一列。所以我喜欢
DataTable datatable2=new DataTable();
addressAndPhones2.Columns.Add(addressAndPhones.Columns[0].ColumnName,addressAndPhones.Columns[0].DataType);
但这只是添加了列,但我想将该列的数据复制到datatable2。这就是我想将数据从一个数据表复制到另一个数据表的数据列。
答案 0 :(得分:11)
我想到了两个解决方案:
第二个更容易编码,但会复制不需要的数据(这意味着额外的时间和内存)。
对于第一个,如果你准备了命运数据表,并且源和命运中的列名(和类型)是相同的:
private void CopyColumns(DataTable source, DataTable dest, params string[] columns)
{
foreach (DataRow sourcerow in source.Rows)
{
DataRow destRow = dest.NewRow();
foreach(string colname in columns)
{
destRow[colname] = sourcerow[colname];
}
dest.Rows.Add(destRow);
}
}
你可以使用它:
CopyColumns(source, destiny, "Column1", "column2");
命名任意数量的列。
答案 1 :(得分:3)
您可以使用以下内容循环所有行:
private void CopyColumn(DataTable srcTable, DataTable dstTable, string srcColName, string dstColName)
{
foreach (DataRow row in srcTable.Rows )
{
DataRow newRow = dstTable.NewRow();
newRow[dstColName] = row[srcColName];
dstTable.Rows.Add(newRow);
}
}