【问题标题】:Populating column with data from DataRelation child datatable使用 DataRelation 子数据表中的数据填充列
【发布时间】:2013-10-24 14:25:10
【问题描述】:

如果之前已经回答过,请指点我;我找不到类似的东西。

我的情况:

  • 1 个数据网格视图
  • 由 BindingSource 从 DataSet (EF) 绑定到 table1
  • table1 与 table2 有数据关系(一对一)

现在,我需要显示子关系中的一列或多列,同时保持从 ParentTable (=table1) 中追加、更新和删除行的能力。

我尝试将 BindingSource 指向 DataRelation,但是,这只显示来自一个表的数据。作为另一种选择,我现在正在尝试使用表达式创建一个计算列,使用以下方法查找子数据:

[table1].Columns.Add("[columnname]", GetType(System.String), _
    "Child([datarelation name]).[columnname from childtable]")

但是,这会失败,并显示“无法在位置 1 解释令牌 'Child'。”。我猜这是由于程序需要多个结果。所以,我的问题是:\

  1. 我是否可以将其更改为仅期望 1 个结果并报告此内容,以使新列报告子数据?
  2. 是否有一些我没有看到的最佳实践?

【问题讨论】:

    标签: vb.net expression datacolumn datarelation


    【解决方案1】:

    对子列的引用必须在聚合函数中,因为子关系可能会返回多行。如果您的父行映射到一个子行,您还可以使用一些聚合函数(例如 Min、Max、Sum、Avg)来获得与列值本身相同的结果。例如,这将起作用:

    [table1].Columns.Add("[columnname]", GetType(System.String), "Sum(Child([datarelation name]).[columnname from childtable])")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2015-08-08
      • 1970-01-01
      • 2020-01-01
      • 2011-02-02
      相关资源
      最近更新 更多