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