首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用linq从2个数据表左连接多列,并将其绑定到1个datagridview

使用linq从2个数据表左连接多列,并将其绑定到1个datagridview
EN

Stack Overflow用户
提问于 2015-03-09 08:53:17
回答 1查看 1.6K关注 0票数 0

你能帮我理解linq吗?我在谷歌上搜索了差不多一整天,但仍然无法正确地理解架构思维。

问题是,我拥有来自不同数据库的2个数据表,我想在datagridview中显示一个左连接dataset a和b在3列(OrderNum,OrderLine,OrderRelNum)中,查询如下所示

代码语言:javascript
复制
Select *
From dataset1 a
left join dataset2 b
    on a.OrderNum = b.OrderNum 
    and a.OrderLine = b.OrderLine 
    and a.OrderRelNum = b.OrderRelNum

问题是如何在Linq中执行此查询并在datagridview中显示它们?

这是我的解决方案代码,可以将正确的查询和数据源放入datagridview。

代码语言:javascript
复制
Public Sub DataSetLinq120()
    strSQL = "SELECT * FROM po "
    strSQL2 = "SELECT * FROM PO"
    Dim DA As New OdbcDataAdapter(strSQL, Connection)
    Dim DS As New DataSet

    DA.Fill(DS, "Source1")

    Dim DA2 As New OdbcDataAdapter(strSQL2, Connection2)
    Dim DS2 As New DataSet

    DA2.Fill(DS2, "Source2")

    Dim dt = DS.Tables("Source1")
    Dim dt2 = DS2.Tables("Source2")

    Dim custQuery = (From a In dt _
                    Group Join b In dt2 On a!OrderNum Equals b!OrderNum _
                    And a!OrderLine Equals b!OrderLine _
                    And a!OrderRelNum Equals b!OrderRelNum _
                    Into Data1 = Group _
                    From c In Data1.DefaultIfEmpty
                    Select New With {
                        .OrderNumber = a!OrderNum,
                        .OrderLine = a!OrderLine,
                        .OrderRelNumber = a!OrderRelNum,
                        .Stock_Status = If(c Is Nothing, "", c.Field(Of String)("Stock_Status")),
                        .Comments = If(c Is Nothing, "", c.Field(Of String)("Comments"))}).ToList

    DataGridView1.DataSource = Nothing
    DataGridView1.DataSource = custQuery

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 10:58:10

下面是MSDN关于如何在LINQ:https://msdn.microsoft.com/en-us/library/bb397895.aspx中执行左外部联接的一篇好文章

您应该能够轻松地创建一个左连接。

除此之外,我不知道为什么在本例中不想简单地使用SQL处理左联接。如果您不需要原始数据集,我看不出您为什么不直接在SQL中这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28938085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档