首先,快速了解一下代码在做什么。我有两个表:公司和客户。公司和客户之间存在一对多的关系(一家公司可以有多个客户)。
在某些处理逻辑中,我将两个表都加载到数据集中——每个表都是数据表。我添加了一个 DataRelation 来设置关系,当我对 Companies 表中的记录使用 GetChildRows 时,它可以工作。
但是,我需要对返回的记录进行排序。在搜索了一些之后,看起来 DataViewManager 是要走的路,我已经检查了几个基本示例。但是,我无法对我的行进行排序。我是否遗漏了什么,或者我没有使用它应该如何使用它?示例代码:
Dim ldvmManager As New DataViewManager(mdsData)
ldvmManager.DataViewSettings("Companies").Sort = "comName ASC"
ldvmManager.DataViewSettings("Clients").ApplyDefaultSort = False
ldvmManager.DataViewSettings("Clients").Sort = "entLastName ASC, entFirstName ASC"
For Each mdrCurrentCompany in ldvmManager.DataViewSettings("Companies").Table.Rows
Dim ldrClients() as DataRow = mdrCurrentCompany.GetChildRows("CompaniesClients")
Next
不管我做什么,返回的第一个客户的姓氏以“B”开头,第二个客户的姓氏以“A”开头。从那里开始,订单就混乱了。如果我使用整个数据而不是用于测试的子集,则返回的第一个客户端的姓氏以“J”开头。在我尝试使用 DataViewManager 之前,它似乎仍在使用任何默认排序。
有任何想法吗?