我有一个表客户和一个表国家,客户有2列引用国家ID(客户来自的国家的ID,以及客户希望将其包裹发送到的国家的ID),而dataset.relations很有用用1列(或更长的时间,只要它们不同)融合表,我无法弄清楚如何显示包含客户信息以及对应于ID的两个国家/地区的名称的表。
我只跟随客户所在的国家
billOrderDataset.Relations.Add("clientCountryRelation",countriesTableCopy.Columns("id"), clientTableCopy.Columns("countryId"))
clientTableCopy.Columns.Add("countryName",GetType(String), "Parent.countryName")
但是在那之后,我不知道如何将国家名称添加到“ deliveryCountryId”列中,因为已经存在使用国家/地区的两个表和id列的关系,所以基本上我需要类似的>
billOrderDataset.Relations.Add("clientCountryRelation2",countriesTableCopy.Columns("id"), clientTableCopy.Columns("DeliveryCountryId"))
clientTableCopy.Columns.Add("DeliveryCountryName",GetType(String), "Parent.countryName")
答案 0 :(得分:1)
答案被隐藏在DataColumn.Expression属性文档中“备注”部分的一个段落中。
父母/子女关系参考
....
当一个孩子有多个 父行,请使用Parent(RelationName).ColumnName。例如, Parent(RelationName)。Price引用父表的名为 通过关系的价格。
换句话说,换句话说,当子表上有多个关系时,需要在表达式语法中显式给出该关系的名称
clientTableCopy.Columns.Add("countryName",GetType(String), "Parent(clientCountryRelation).countryName")
clientTableCopy.Columns.Add("DeliveryCountryName",GetType(String), "Parent(clientCountryRelation2).countryName")