【问题标题】:Merge two DataTables using an Inner Join in vb.net在 vb.net 中使用内部联接合并两个数据表
【发布时间】:2017-01-17 00:32:55
【问题描述】:

我有两个需要合并在一起的数据表。两个表中都有一个名为“代码”的字段基本上,如果一个表具有特定代码,它会与另一个表中的相应代码合并,将行值合并到其中。我会说这就像使用内部联接在 SQL 中将两个表合并在一起。

请在 vb.net 中!

【问题讨论】:

    标签: vb.net excel visual-studio


    【解决方案1】:

    这是answer的VB转换。

    Dim dt1 As New DataTable()
    dt1.Columns.Add("CustID", GetType(Integer))
    dt1.Columns.Add("ColX", GetType(Integer))
    dt1.Columns.Add("ColY", GetType(Integer))
    
    Dim dt2 As New DataTable()
    dt2.Columns.Add("CustID", GetType(Integer))
    dt2.Columns.Add("ColZ", GetType(Integer))
    
    For i As Integer = 1 To 5
        Dim row As DataRow = dt1.NewRow()
        row("CustID") = i
        row("ColX") = 10 + i
        row("ColY") = 20 + i
        dt1.Rows.Add(row)
    
        row = dt2.NewRow()
        row("CustID") = i
        row("ColZ") = 30 + i
        dt2.Rows.Add(row)
    Next
    
    Dim results = From table1 In dt1.AsEnumerable()Join table2 In      dt2.AsEnumerable() On CInt(table1("CustID")) = CInt(table2("CustID"))New With { _
        Key .CustID = CInt(table1("CustID")), _
        Key .ColX = CInt(table1("ColX")), _
        Key .ColY = CInt(table1("ColY")), _
        Key .ColZ = CInt(table2("ColZ")) _
    }
    For Each item As var In results
        Console.WriteLine([String].Format("ID = {0}, ColX = {1}, ColY = {2}, ColZ = {3}", item.CustID, item.ColX, item.ColY, item.ColZ))
    Next
    Console.ReadLine()
    

    【讨论】:

    • vb.net 有这个解决方案吗?
    • 怎么样?
    • 我对你的语法有点迷茫,我已经拥有两个数据表中的所有数据,DT1 和 DT2。我正在使用 ComboBox1.SelectedItem 和 ComboBox2.SelectedItem 将两者联系在一起。如果因为我觉得我没有很好地解释自己而使它变得更容易,那么 DT1 是一个数据列表,而 DT2 是一个矩阵。我需要根据矩阵对 DT1 进行编码。所以在 DT1 中有一个填充有 A、B、C 的代码字段。我想根据这个代码字段附加来自 DT2(矩阵)的数据。因此,DT1 中代码字段中带有 A 的任何内容都将获得矩阵中的行,代码字段中的 A 附加到末尾
    • LINQ 中的语法。我的理解是,根据这个问题,您有两个数据表(在上面的示例代码中,DT1 和 DT2)并且想要一个结果数据表,它相当于在 DT1 和 DT2 上执行 INNER JOIN。该代码使用 LINQ“Join”操作执行此操作,并生成一个名为“results”的输出表,它是两者的 INNER JOIN。当然,它使用了一个虚构的 CusID 列,它将被您的“代码”列替换。
    • 对于 LINQ 示例,您可能会发现以下 link 很有帮助。它演示了 SQL 的 JOIN、INNER、OUTER 和 LEFT 等价物,所有这些都在 VB 中。
    猜你喜欢
    • 2015-11-06
    • 2023-04-03
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多