我有以下代码来创建两个绑定源。第一个是用主表填充的,第二个是基于关系的子表。
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”。
有人知道我的代码出了什么问题吗?
干杯,
发布于 2018-08-05 09:09:11
这就是答案:
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 = BindingSource1
BindingSource2.DataMember = "R"https://stackoverflow.com/questions/51689631
复制相似问题