【问题标题】:How to bind data to DataRelation?如何将数据绑定到 DataRelation?
【发布时间】: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”。

请问有人知道我的代码有什么问题吗?

干杯,

【问题讨论】:

标签: .net vb.net datasource


【解决方案1】:

这是答案:

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"

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2011-05-28
    • 2014-03-15
    • 2014-03-08
    • 2019-03-15
    • 2013-02-13
    • 2019-02-15
    • 2013-07-17
    • 2011-05-25
    相关资源
    最近更新 更多