Har*_*hna 3 .net c# datatable copy winforms
我有两个DataTable.首先是
DataTable NameAddressPhones = new DataTable();
Run Code Online (Sandbox Code Playgroud)
有三列名称,地址和PhoneNo.但我只想要两列Name和Address数据,所以我想将这些列(带数据)复制到新的DataTable.
DataTable NameAddress = new DataTable();
Run Code Online (Sandbox Code Playgroud)
为此我做
foreach (DataRow sourcerow in NameAddressPhones.Rows)
{
DataRow destRow = NameAddress.NewRow();
foreach (string colname in columns)
{
destRow[colname] = sourcerow[colname];
}
NameAddress.Rows.Add(destRow);
}
Run Code Online (Sandbox Code Playgroud)
每次在表中插入新记录时,我都会清除NameAddressPhones(第一个)DataTable.并且每次都有相同数量的列,但列名称将不同,如Nm而不是Name,Add而不是Address.现在问题是第二个DataTable已经有列名Name和Address现在我想要复制Nm的列数据和添加到第二个DataTable但列名称与第二个DataTable的列名称不同.因此,即使存在不同的列名,我也希望将第一个DataTable的Nm列数据复制到第二个DataTable 的列Name,并将第一个DataTable的数据添加到第二个DataTable的列Address.
简而言之,即使两个DataTable的列名都不同,我们也可以将列数据从一个DataTable复制到另一个DataTable,例如Nm是第一个DataTable的列名,而Name是第二个DataTable的列名,那么列Nm的数据应该是复制到列名称.
Mus*_*sis 10
这是最简单的方法:
foreach (DataRow sourcerow in NameAdressPhones.Rows)
{
DataRow destRow = NameAdress.NewRow();
destRow["Name"] = sourcerow["Nm"];
destRow["Address"] = sourcerow["Add"];
NameAdress.Rows.Add(destRow);
}
Run Code Online (Sandbox Code Playgroud)
可用时自动化很棒.如果不是,则必须以某种方式将源列映射到目标列.
如果两个表中的列的顺序相同,则可以按顺序而不是列名引用这些值,但这是一个坏主意,我甚至不会为它发布任何代码.
| 归档时间: |
|
| 查看次数: |
23002 次 |
| 最近记录: |