Почему DataViewManager не сортируется? - PullRequest
0 голосов
/ 18 декабря 2008

Прежде всего, краткое изложение того, что делает код. У меня есть две таблицы: компании и клиенты. Между компаниями и клиентами существуют отношения один ко многим (одна компания может иметь много клиентов).

В некоторой логике обработки у меня обе таблицы загружены в 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.

Есть идеи?

1 Ответ

0 голосов
/ 19 декабря 2008

Я думаю, вы должны использовать DataView для получения отсортированного представления DataTable.

Глядя на документ MSDN, кажется, что DataViewManager хранит настройки по умолчанию (как и в DataTable при создании).

Кто-то, кто работал с этим, может пролить свет на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...