【发布时间】:2019-01-12 08:25:26
【问题描述】:
我有以下代码来创建两个绑定源。第一个填充主表,第二个填充基于关系的子表。
Dim DataSet As New DataSet
Dim BindingSource1 As New BindingSource
Dim BindingSource2 As New BindingSource
Dim DataTable1 As DataTable = GetDT1()
Dim DataTable2 As DataTable = GetDT2()
DataSet.Tables.Add(DataTable1)
DataSet.Tables.Add(DataTable2)
Dim Rel As DataRelation = New DataRelation("R", DataSet.Tables("DT1").Columns("C1"), DataSet.Tables("DT2").Columns("C1"), True)
DataSet.Relations.Add(Rel)
BindingSource1.DataSource = DataSet
BindingSource1.DataMember = "DT1"
BindingSource2.DataSource = DataSet
BindingSource2.DataMember = "R"
其中GetDT1和GetDT2如下:
Public Function GetDT1() As DataTable
Dim DT As New DataTable("DT1")
DT.Columns.Add(New DataColumn("C1"))
Dim R As DataRow = DT.NewRow
R("C1") = 1
DT.Rows.Add(R)
R = DT.NewRow
R("C1") = 2
DT.Rows.Add(R)
R = DT.NewRow
R("C1") = 3
DT.Rows.Add(R)
Return DT
End Function
Public Function GetDT2() As DataTable
Dim DT As New DataTable("DT2")
DT.Columns.Add(New DataColumn("C1"))
DT.Columns.Add(New DataColumn("C2"))
Dim R As DataRow = DT.NewRow
R("C1") = 1
R("C2") = "A"
DT.Rows.Add(R)
R = DT.NewRow
R("C1") = 1
R("C2") = "B"
DT.Rows.Add(R)
R = DT.NewRow
R("C1") = 2
R("C2") = "Coucou"
DT.Rows.Add(R)
Return DT
End Function
当我运行代码时,我在行中有一个错误:BindingSource2.DataMember = "R"。它说:
在 DataSource 上找不到 DataMember 属性“R”。
请问有人知道我的代码有什么问题吗?
干杯,
【问题讨论】:
-
How to: Create a Master/Detail Form Using Two Windows Forms DataGridView Controls。 TLDR 版本:
BindingSource2.DataSource=BindingSource1
标签: .net vb.net datasource