Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 合并两个数据表。有解决办法吗?_C#_Excel_Merge_Datatable - Fatal编程技术网

C# 合并两个数据表。有解决办法吗?

C# 合并两个数据表。有解决办法吗?,c#,excel,merge,datatable,C#,Excel,Merge,Datatable,目标:如果dt1包含列[Item],dt2也包含列[Item],则dt3将只有一列[Item]。如果两者都有汉堡包,则用一个覆盖,如果不常见,则添加一个新行 我试着用tabel3.Clonetable1和table3.mergetable2来实现这一点。它告诉我: 请注意,tb1和tb2的公共元素以及tb2的所有元素都存在 但当我只使用tb1.mergetb2和tb3=tb1时,它会这样看我: 注意,tb1的所有元素都在查看中,两个表合并,但tb2的元素不在查看中 因此,任何关于员额目标的解决

目标:如果dt1包含列[Item],dt2也包含列[Item],则dt3将只有一列[Item]。如果两者都有汉堡包,则用一个覆盖,如果不常见,则添加一个新行

我试着用tabel3.Clonetable1和table3.mergetable2来实现这一点。它告诉我:

请注意,tb1和tb2的公共元素以及tb2的所有元素都存在

但当我只使用tb1.mergetb2和tb3=tb1时,它会这样看我:

注意,tb1的所有元素都在查看中,两个表合并,但tb2的元素不在查看中

因此,任何关于员额目标的解决办法都将受到高度赞赏。 谢谢
-Saffan Alvy博士。

您看过使用linq进行查询/写入吗

见:

还有很多关于堆栈溢出的问题。

这可能不确定,但这将是我的第一个猜测,因为Datatable.Merge方法的默认行为设置为PreserveChanges

在代码中,将“false”swith添加到merge方法中,看看这是否有帮助

dt3.Clone(dt1);
dt3.Merge(dt2, false);
如果没有,你能把那部分代码复制出来作为你问题中的一个更新,这样我们就可以对代码有更多的了解。 在填充2个GridView时,不需要复制具有OleDb设置的代码部分,因此这些数据表是正确的

谢谢


Kevin

如果有人能使用datatable、列、行等来解决它,那就更感激了。