我们如何将数据表的数据列的数据复制到另一个数据表?
我们如何将一个数据列从一个数据表复制到另一个数据表? 我有数据表喜欢
DataTable datatable1=new DataTable();
那个表中有四列,但我只想要一列。所以我喜欢
DataTable datatable2=new DataTable(); addressAndPhones2.Columns.Add(addressAndPhones.Columns[0].ColumnName,addressAndPhones.Columns[0].DataType);
但这只是添加了列,但我想将该列的数据复制到datatable2。这就是我想将数据从一个数据表复制到另一个数据表的数据列。
我想到两种解决方案:
- 创建列后,循环遍历所有行以将数据从源复制到目标。
- 执行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); } }