从一个DataTable复制行到另一个DataTable?

193
如何在C#中将特定行从DataTable复制到另一个DataTable?有多行。
15个回答

0
使用Merge,可以将newDataTable的所有行与oldDateTable合并。
oldDateTale.Merge(newDataTable);

0

对于那些想要单个命令的 SQL 查询的人:

INSERT INTO TABLE002 
(COL001_MEM_ID, COL002_MEM_NAME, COL002_MEM_ADD, COL002_CREATE_USER_C, COL002_CREATE_S)
SELECT COL001_MEM_ID, COL001_MEM_NAME, COL001_MEM_ADD, COL001_CREATE_USER_C, COL001_CREATE_S
FROM TABLE001;

这个查询将会从TABLE001复制数据到TABLE002,我们假设两个表的列名是不同的。

列名之间的映射关系如下:

COL001_MEM_ID -> COL001_MEM_ID

COL001_MEM_NAME -> COL002_MEM_NAME

COL001_MEM_ADD -> COL002_MEM_ADD

COL001_CREATE_USER_C -> COL002_CREATE_USER_C

COL002_CREATE_S -> COL002_CREATE_S

如果需要的话,你也可以指定where子句来添加条件。


0

有更好的方法来做这件事。

DataTable targetDataTable = new DataTable(); targetDataTable = changedColumnMetadata.AsEnumerable().Where(dataRow => entityName.Equals(dataRow["EntityName"])).CopyToDataTable();

请尝试这个,如果有任何问题,请让我知道。


0

如果要复制整个数据表,请执行以下操作:

DataGridView sourceGrid = this.dataGridView1;
DataGridView targetGrid = this.dataGridView2;
targetGrid.DataSource = sourceGrid.DataSource;

2
问题在于如何从数据表中复制特定行,而不是整个表。 - jtate

0

你可以通过调用DataTable.Copy()方法来实现,例如:

   DataSet ds = new DataSet();
   System.Data.DataTable dt = new System.Data.DataTable();
   dt = _BOSearchView.DS.Tables[BusLib.TPV.TableName.SearchView].Copy();
   ds.Tables.Add(dt);
   UltGrdSaleExcel.SetDataBinding(ds, dt.TableName, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接