合并同一数据表中的行

本文关键字:数据表 合并 | 更新日期: 2023-09-27 18:34:20

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

例:

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

我尝试使用表格。合并(表),但这似乎没有任何作用。我怎样才能合并这两行,让它只是

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

合并同一数据表中的行

假设您有两个数据行dr1并且来自同一个数据表dr2,则使用 Linq 很简单:

var merged = dr1.ItemArray.Zip(dr2.ItemArray, (e1, e2) =>e1 ?? e2).ToArray();    
dr1.ItemArray = merged;

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

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);

上面的示例循环访问两行的所有列,并从目标为 null 的源中分配值。 合并后,它会删除源行。