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

Har*_*hna 1 .net c# datatable copy winforms

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

DataTable datatable1=new DataTable();
Run Code Online (Sandbox Code Playgroud)

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

DataTable datatable2=new DataTable(); 
addressAndPhones2.Columns.Add(addressAndPhones.Columns[0].ColumnName,addressAndPhones.Columns[0].DataType);
Run Code Online (Sandbox Code Playgroud)

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

Han*_*ing 11

我想到两种解决方案:

  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);
  }
}
Run Code Online (Sandbox Code Playgroud)

你可以这样使用:

CopyColumns(source, destiny, "Column1", "column2");
Run Code Online (Sandbox Code Playgroud)

命名任意数量的列.