gpt4 book ai didi

c# - 将行从数据表复制到另一个有公共(public)列标题的地方

转载 作者:太空狗 更新时间:2023-10-29 23:49:07 26 4
gpt4 key购买 nike

我有两个数据表,我正在尝试将行从一个表复制到另一个表,我试过 this .问题是我的表不完全一样,两个表都有共同的标题,但是第二个表有更多的列,因此我需要“智能”复制,即根据列标题名称复制行。

d1:

+--------+--------+--------+
| ID | aaa | bbb |
+--------+--------+--------+
| 23 | value1 | value2 | <----copy this row

d2:

+--------+--------+--------+--------+
| ID | ccc | bbb | aaa |
+--------+--------+--------+--------+
| 23 | | value2 | value1 | <----I need this result

但是这段代码:

string rowID=23;
DataRow[] result = dt1.Select($"ID = {rowID}");
dt2.Rows.Add(result[0].ItemArray);

给出:

d2:

+--------+--------+--------+--------+
| ID | ccc | bbb | aaa |
+--------+--------+--------+--------+
| 23 | value1 | value2 | | <---- :( NOT what I need

最佳答案

我认为这是你的功课,但这里你有一些简单但不是很聪明的解决方案:

private DataTable DTCopySample()
{
int cnt = 0;

DataTable dt1 = new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("aaa");
dt1.Columns.Add("bbb");

DataTable dt2 = new DataTable();
dt2.Columns.Add("ID");
dt2.Columns.Add("ccc");
dt2.Columns.Add("bbb");
dt2.Columns.Add("aaa");

dt1.Rows.Add();
dt1.Rows[0]["ID"] = "23";
dt1.Rows[0]["aaa"] = "val1";
dt1.Rows[0]["bbb"] = "val2";

dt1.Rows.Add();
dt1.Rows[1]["ID"] = "99";
dt1.Rows[1]["aaa"] = "val99";
dt1.Rows[1]["bbb"] = "val98";

string colName = string.Empty;

foreach (DataRow row in dt1.Rows)
{
dt2.Rows.Add();

foreach (DataColumn col in dt1.Columns)
{
dt2.Rows[cnt][col.ColumnName] = row[col.ColumnName].ToString();
}

cnt++;
}

return dt2;
}

有更多更智能和更好的解决方案,但这是快速编写的(2 分钟)并且有效。请记住,您没有指定列数据类型或其他任何内容,所以我假设到处都有用于创建简单示例的字符串。

关于c# - 将行从数据表复制到另一个有公共(public)列标题的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53875585/

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