使用DataRelation子数据表中的数据填充列

时间:2013-10-24 14:25:10

标签: vb.net expression datacolumn datarelation

如果之前已经回答过,请指出我的意见;我找不到任何相似的东西。

我的情况:

  • 1 datagridview
  • 由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. 我有没有看到最好的做法?

1 个答案:

答案 0 :(得分:0)

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

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