我有以下代码来创建两个绑定源。根据关系,第一个填充主表,第二个填充子表。
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” 。它说:
在数据源上找不到DataMember属性'R'。
请问有人知道我的代码有什么问题吗?
干杯
答案 0 :(得分:0)
这是答案:
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"