Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用LINQ连接两个数据表,并在其他数据表中获得结果_Asp.net_.net_Vb.net_Linq_Datatable - Fatal编程技术网

Asp.net 使用LINQ连接两个数据表,并在其他数据表中获得结果

Asp.net 使用LINQ连接两个数据表,并在其他数据表中获得结果,asp.net,.net,vb.net,linq,datatable,Asp.net,.net,Vb.net,Linq,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"

我有两个数据表,我将它们连接起来以选择一些匹配的记录,我需要从这两个数据表中选择一些列作为一个新的结果集,我就是这样做的

        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()