我们如何将数据表的数据列的数据复制到另一个数据表?

我们如何将一个数据列从一个数据表复制到另一个数据表? 我有数据表喜欢

DataTable datatable1=new DataTable(); 

那个表中有四列,但我只想要一列。所以我喜欢

 DataTable datatable2=new DataTable(); addressAndPhones2.Columns.Add(addressAndPhones.Columns[0].ColumnName,addressAndPhones.Columns[0].DataType); 

但这只是添加了列,但我想将该列的数据复制到datatable2。这就是我想将数据从一个数据表复制到另一个数据表的数据列。

我想到两种解决方案:

  1. 创建列后,循环遍历所有行以将数据从源复制到目标。
  2. 执行datatable1.Copy()复制所有列+数据并删除不需要的列。

第二个是更简单的代码,但会复制不需要的数据(这意味着额外的时间和内存)。

对于第一个,如果您准备了命运数据表,并且源和命运中的列名(和类型)是相同的:

 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"); 

命名任意数量的列。

您可以使用以下内容循环遍历所有行:

 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); } }