【问题标题】:How to Fetch DataTable1 & DataTable2 Information using Relationship如何使用关系获取 DataTable1 和 DataTable2 信息
【发布时间】:2014-05-24 17:57:29
【问题描述】:

目标

我想通过父表访问我孩子表的信息。使用下图,我们可以看到我有输送解决方案,并且对于每个输送解决方案,我都会有一个或多个与之相关的输送功能。

请记住,我什至不确定我的关系在下面是否正确完成...我是新手。


尝试

我在表单加载时将信息加载到我的数据表中(这可以正常工作)。然后我将我的 DataView 的表设置为我的 Conveying Solution 的 DataTable 并将我的 DataView 设置为我的 DataGridView 的 DataSource。

Public Class Form1
    Private DataView1 As New DataView


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        clsConveyingSolution.LoadConveyingSolutions()
        clsConveyorFunction.LoadConveyorFunctions()

        Try
            DataView1.Table = HunterMgmt.dtConveyingSolutions
            DataGridView1.DataSource = DataView1
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

我想执行某种联接,并使用我建立的关系访问两个表的信息。

【问题讨论】:

  • 首先,忘记DataView。每个DataTable 在其DefaultView 属性中已经有一个,这就是绑定DataTable 时数据的来源。您还能如何对绑定到DataTableDataGridView 中的数据进行排序?在设计器中将BindingSource 添加到您的表单,将DataTable 绑定到该表单并将其绑定到网格。
  • 至于问题,“某种类型的加入”是什么意思?您是否真的想加入数据,即创建一个包含两个表中的列的结果集?您是否只想访问给定特定父记录的子记录,例如在第二个网格中显示子记录并过滤掉所有与当前所选父项无关的记录?
  • @jmcilhinney 我所说的某种连接的意思是我想在我的 DataTable ConveyingSolutions 绑定到的同一个 DataGridView 中显示 ConveyorFunction.Name。为了目前执行此操作,我在dtConveyingSolutions 中创建实际字段ConveyorFunctionName,然后设置名称。我想知道是否可以通过某种类型的连接来做到这一点,而不是在 DataTable 中创建一个额外的字段。
  • 所以您希望两个表中的列在同一行中,对吧?
  • @jmcilhinney 是的。你明白了。

标签: vb.net winforms join datatable


【解决方案1】:

如果您想连接两个表中的数据,那么您有两个主要选择:

  1. 根据执行连接的查询,将新的 DataTable 和表适配器添加到 DataSet。然后,您可以像对待任何其他人一样对待该 DataTable 和表适配器。
  2. 使用 LINQ 或一些手动过程来创建一个新列表,用于连接现有 DataTable 行中的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-07
    • 2019-05-14
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多