/ / Vľavo sa pripojíte k viacerým stĺpcom pomocou linq z 2 datatable a pripojte ho k 1 datagridview - vb.net, linq, datagridview

Vľavo pripojiť viac stĺpcov pomocou linq z 2 datatable a viazať ho na 1 datagridview - vb.net, linq, datagridview

Pomôžete mi pochopiť linq, ja som to googling takmer celý deň, ale napriek tomu nedokážem správne pochopiť architektonické myslenie.

Tu je problém, Mám 2 dátové súbory z rôznych databáz a chcem sa v nich ukázať datagridview ľavý spoj dataset aab v 3 stĺpcoch (OrderNum,OrderLine,OrderRelNum) v sql dotaz vyzerá takto

Select *
From dataset1 a
left join dataset2 b
on a.OrderNum = b.OrderNum
and a.OrderLine = b.OrderLine
and a.OrderRelNum = b.OrderRelNum

Otázkou je, ako môžem urobiť tento dotaz v Linq a ukázať ich v datagridview?

Toto je môj vyriešený kód, aby som dostal ten správny dotaz a vložil ho do dátového prehľadu

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

odpovede:

0 pre odpoveď č. 1

Tu je dobrý článok od spoločnosti MSDN o tom, ako vykonať ľavý vonkajší spoj v LINQ: https://msdn.microsoft.com/en-us/library/bb397895.aspx
Z tohto by ste mali byť schopní ľahko vytvoriť LEFT JOIN.

Okrem toho si nie som istý, prečo si v tomto príklade nechceš jednoducho vybaviť ľavú spojku s SQL. Ak nepotrebujete originálne súbory údajov, nechápem, prečo by ste to priamo neurobili v SQL.