0

我正在尝试将两行合并为一行。它们都在同一个数据库和表中。

例子:

        column1    column2    column3    column4    column5    column6
row1    value      value      value      null       null       null
row2    null       null       null       value      value      value

我尝试使用 table.Merge(table) 但这似乎没有做任何事情。我怎样才能合并这两行,以便它只是

        column1    column2    column3    column4    column5    column6
row1    value      value      value      value      value      value
4

2 回答 2

1

假设您有两个 DataRowsdr1并且dr2来自同一个 DataTable,则使用以下命令很简单Linq

var merged = dr1.ItemArray.Zip(dr2.ItemArray, (e1, e2) =>e1 ?? e2).ToArray();    
dr1.ItemArray = merged;
于 2013-10-07T16:55:24.990 回答
1

没有内置功能可以为您执行此操作。因此,您必须手动执行此操作。首先确定要合并的行,然后遍历列以合并它们。

DataRow target = table.Rows[0];
DataRow source = table.Rows[1];

for (int i = 0; i < table.Columns.Count; i++)
{
    target[i] = target[i] ?? source[i];
}

table.Remove(source);

上面的示例遍历两行的所有列,并从 target 为 null 的 source 分配值。合并后,它会删除源行。

于 2013-10-07T16:54:11.633 回答