Прежде всего, краткое изложение того, что делает код. У меня есть две таблицы: компании и клиенты. Между компаниями и клиентами существуют отношения один ко многим (одна компания может иметь много клиентов).
В некоторой логике обработки у меня обе таблицы загружены в DataSet - каждая является DataTables. Я добавил DataRelation для установки отношения, и оно работает, когда я использую GetChildRows для записи из таблицы Companies.
Однако мне нужно отсортировать возвращенные записи. Поискав некоторые, кажется, что 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.
Есть идеи?