如何左连接两个数据表对象?

How to LEFT JOIN two Datatable Objects?

提问人:timpictor 提问时间:7/28/2023 最后编辑:timpictor 更新时间:7/28/2023 访问量:47

问:

正如标题所说,在代码中的几个点上,我有两个 Datatable 对象。我正在寻找一种方便的解决方案来将它们连接起来,以便它们可以用作数据源。由于工作特定的原因,我无法在数据库级别执行这些联接,因为它们来自完全不同的数据库(每个表已经是来自各自数据库的数十个联接的结果)。

我所关心的只是提到的数据源部分,这些表不一定需要组合成一个 Datatable 类型的实际实例,我只需要提供适当视图的东西。

我所知道的是有效的,但由于应用程序的规模(我必须在不相同的表方案上执行此操作数百次)是手动操作 DataRow 级别,这是不切实际的。但是,我无法想象自己是第一个遇到这个问题的人,因此必须有一个与表特定列无关的解决方案(显然除了相应的外键)。

在我自己的测试中,我探索了 2 条主要路线,第一条是将表添加到 DataSet 对象,并使用正确的 DataRelation 对象填充 Relations 属性。但是,这不起作用,因为在绑定数据集时,您被迫从集合中选择一个表,并且它不会自动执行所需的连接(那么为什么会存在呢? 第二个是基于 LINQ 的。如果我在 GROUP JOIN 之后明确添加每列的 SELECT 语句,这将起作用,但是如前所述,这不是我想要的。

我觉得这两种方法中的任何一种都可以奏效,我只是错过了一些让我眼前一亮的东西,但我不太清楚。

我碰巧主要使用 VB,但 C# 中的答案也一样好。

C# .NET vb.net LINQ

评论

1赞 bdcoder 7/28/2023
找到这个链接,可能会有所帮助:stackoverflow.com/questions/10671746/...

答: 暂无答案