请帮助我。这是我的第一个LINQ。
我有两个数据表,需要在两个字段上进行连接。
我该如何做?
我尝试了以下代码但连接不起作用。 在 "yk.Field(Of String)("secNo")" 处出现错误,错误信息为 "Anonymous type member name can be inferred only from a simple or qualified name with no arguments"。
我有两个数据表,需要在两个字段上进行连接。
我该如何做?
我尝试了以下代码但连接不起作用。 在 "yk.Field(Of String)("secNo")" 处出现错误,错误信息为 "Anonymous type member name can be inferred only from a simple or qualified name with no arguments"。
Dim dtYk As DataTable = New DataTable("dtYk")
dtYk.Columns.Add("secNo")
dtYk.Columns.Add("BomLine")
dtYk.Rows.Add("EA(1)", 1)
dtYk.Rows.Add("EA(8)", 17)
Dim dtIvt As DataTable = New DataTable("dtIvt")
dtIvt.Columns.Add("secNo")
dtIvt.Columns.Add("BomLine")
dtIvt.Columns.Add("PartCode")
dtIvt.Rows.Add("EA(1)", 1, "TRML07-32-LH-ASSY**")
dtIvt.Rows.Add("EA(8)", 17, "328")
' Create a DataSet. Put both tables in it.
Dim dsYk As DataSet = New DataSet("dsYk")
dsYk.Tables.Add(dtYk)
Dim dsIvt As DataSet = New DataSet("dsIvt")
dsIvt.Tables.Add(dtIvt)
Dim LinQuery = From yk In dtYk.AsEnumerable
Join ivt In dtIvt.AsEnumerable
On New With {yk.Field(Of String)("secNo") , yk.Field(Of String)("BomLine")} Equals New With {ivt.Field(Of String)("secNo") , ivt.Field(Of String)("BomLine")}
Select New With {yk.Field(Of String)("secNo") , yk.Field(Of String)("BomLine"),ivt.Field(Of String)("secNo")}
这是一个简单的版本,可以工作。但是它只在一个字段上进行连接,并且仅选择一个表。
Dim LinQuery = From yk In dtYk.AsEnumerable()
Join ivt In dtIvt.AsEnumerable()
On yk.Field(Of String)("secNo") Equals ivt.Field(Of String)("secNo")
Select yk
Dim dt As New DataTable
dt = LinQuery.CopyToDataTable
我的目标是在两个字段上进行连接,查询应该是yk.SecNo、yk.BomLine和ivt.PartCode。请帮忙。谢谢。