Разница в порядке сортировки в SQL и TreeList

В моей программе VB.NET я использую Devexpress TreeList v9.2. Когда я запускаю программу, я заполняю TreeList из хранимой процедуры.

Когда я запускаю процедуру SQL в SQL Management Studio, мои данные возвращаются так, как я хочу. Например

  • 3
  • 6
  • 33
  • 42
  • 54
  • 206
  • 226
  • 733
  • 6633

Тем не менее, когда я запускаю программу и заполняю TreeList теми же результатами из хранимой процедуры, я получаю:

  • 206
  • 226
  • 3
  • 33
  • 42
  • 54
  • 6
  • 6633
  • 733

Вы знаете, что я могу делать не так?

РЕДАКТИРОВАТЬ:

У меня есть "заказ по" в моей хранимой процедуре. Вот почему я получаю правильный порядок, когда запускаю хранимую процедуру из SQL Management Studio. Сортировка по порядку разбивает число на подстроки (поскольку они могут также содержать буквы), поэтому оно сортируется численно. Почему-то похоже, что TreeList использует его как Strings, а не сохраняет его в исходном порядке сортировки.

РЕДАКТИРОВАТЬ:

Я создал другой столбец, содержащий числовые данные, чтобы при сортировке таблицы по возрастанию этого столбца мои данные выглядели так, как я хочу. Но даже если я отправил SortOrder в свойствах, он не будет сортироваться, даже если маленький треугольник появился в заголовке сетки при запуске.

РЕШИТЬ:

Я решил это, позвонив:

  • tree.beginSort ()
  • установив sortindex для столбца, по которому я хочу отсортировать, равным 0, а для остальных столбцов - -1: tree.columns("colName").SortIndex
  • установка сортировки моего столбца по возрастанию: tree.columns("colName").SortOrder = SortOrder.Ascending
  • tree.endsort ()

1 ответ

Решение

Столбец treeList привязан к строковому полю. В этом случае treeList считает, что этот столбец содержит строковые значения, и сортирует их как строки. Чтобы изменить это поведение, используйте подход " Выборочная сортировка", предоставляемый XtraTreeList.

Другие вопросы по тегам