gpt4 book ai didi

c# - 我们如何将一个 DataTable 的列数据复制到另一个 DataTable,即使 DataTable 之间的列名不同?

转载 作者:行者123 更新时间:2023-11-30 13:34:40 27 4
gpt4 key购买 nike

我有两个数据表。首先是

DataTable NameAddressPhones = new DataTable(); 

具有三列姓名、地址和电话号码。但我只想要两列姓名和地址数据,所以我想将这些列(包含数据)复制到新的数据表。

DataTable NameAddress = new DataTable(); 

我愿意

            foreach (DataRow sourcerow in NameAddressPhones.Rows)
{
DataRow destRow = NameAddress.NewRow();
foreach (string colname in columns)
{
destRow[colname] = sourcerow[colname];
}
NameAddress.Rows.Add(destRow);
}

每当表中插入新记录时,我都会清除 NameAddressPhones(first) DataTable。并且每次都会有相同数量的列,但列名将不同,例如 Nm 而不是 Name,Add 而不是 Address。现在的问题是第二个 DataTable 已经有列名 Name 和 Address 现在我想将 Nm 和 Add 的列数据复制到第二个 DataTable 但列名是不同于第二个 DataTable 的列名。因此,即使有不同的列名,我也想将第一个 DataTable 的 Nm 列数据复制到第二个 DataTable 的 Name 列和 Add 列数据第一个 DataTable 到第二个 DataTable 的 Address 列。

简而言之,即使两个 DataTable 的列名不同,我们如何将列数据从一个 DataTable 复制到另一个 DataTable,例如 Nm 是第一个 DataTable 的列名,Name 是第二个 DataTable 的列名,则应将 Nm 列的数据复制到 Name 列。

最佳答案

这是最简单的方法:

foreach (DataRow sourcerow in NameAdressPhones.Rows)
{
DataRow destRow = NameAdress.NewRow();
destRow["Name"] = sourcerow["Nm"];
destRow["Address"] = sourcerow["Add"];
NameAdress.Rows.Add(destRow);
}

自动化在可用时非常有用。如果不是,您必须以某种方式将源列映射到目标列。

如果列在两个表中的顺序相同,您可以只按序号而不是列名引用值,但这是个坏主意,我什至不打算发布任何代码。

关于c# - 我们如何将一个 DataTable 的列数据复制到另一个 DataTable,即使 DataTable 之间的列名不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com