簡體   English   中英

使用LINQ連接兩個數據表並在其他數據表中獲取結果

[英]Join two datatable using LINQ and get result in other datatable

我有兩個數據表,我正在加入它們以選擇一些匹配的記錄,我需要從兩個表中將一些列作為新結果集,我正在這樣做

        Dim query4 = From x In dtblPolicyFormStopCodes.AsEnumerable() Join y In dtblPolicyFormLetterReq.AsEnumerable()
        On x.Field(Of String)("Code") Equals y.Field(Of String)("Code") _
        Select New With _
        { _
            .Code = x.Field(Of String)("Code"), _
            .Sequence = x.Field(Of Integer)("Sequence "), _
            .FieldDataType= x.Field(Of String)("FieldDataType"), _
            .FieldValue= y.Field(Of String)("FieldValue") _
        }

        MyNewDataTable = GetDynamicTableSchema()

        query4.Cast(Of DataRow).CopyToDataTable(MyNewDataTable, LoadOption.OverwriteChanges)

但是我無法使用兩個數據表的選定列獲取新數據表,請幫助我如何在“ MyNewDataTable”中或作為新數據表獲取新結果集

Public Function GetDynamicTableSchema() As System.Data.DataTable
    Dim tblDynamicTableDataMain As System.Data.DataTable = Nothing
    Try
        tblDynamicTableDataMain = New System.Data.DataTable("DynamicTableData")
        With tblDynamicTableDataMain
            .Columns.Add("Code")
            .Columns.Add("Sequence", System.Type.GetType("System.Int32"))
            .Columns.Add("FieldDataType")
            .Columns.Add("FieldValue")
        End With
        Return tblDynamicTableDataMain
    End Try
End Function

我通過這種方式實現了我的願望功能

Dim dr As DataRow
Dim MyNewDataTable as Datatable = GetDynamicTableSchema()

Dim query = (From x In dtblPolicyFormStopCodes.AsEnumerable() Join y In dtblPolicyFormLetterReq.AsEnumerable()
            On x.Field(Of String)("Code") Equals y.Field(Of String)("Code")) _
            .Select(Function(a) As DataRow
                        dr = MyNewDataTable.NewRow()
                        dr("Code") = a.x.Field(Of String)("Code")
                        dr("Sequence") = a.x.Field(Of Integer)("Sequence")
                        dr("FieldDataType") = a.x.Field(Of String)("FieldDataType")
                        dr("FieldValue") = a.y.Field(Of String)("Fieldvalue")
                        Return dr
                    End Function)

MyNewDataTable = query.CopyToDataTable()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM