2009-04-20 2 views
2

Если у меня есть две строки, и мне нужно, чтобы сравнить их в порядке ASCII (вместо инварианта порядка культуры) Я обычно использую:DataTable сортировки столбцов в порядке ASCII, не

int c = String.Compare(a, b, StringComparison.Ordinal); 

Если у меня есть DataTable, и я хочу, чтобы один из столбцов отсортирован с использованием сравнения строк для DataView, как мне это сделать?

ответ

1

К сожалению, нет ничего встроенного для облегчения пользовательской логики сортировки в DataView; это была одна из моих главных жалоб, и одна из причин, по которой мы решили свернуть наш собственный уровень доступа к данным на моей старой работе.

Хотя я не знаю, насколько это возможно для вас, для этого вам нужно добавить другой столбец в таблицу как int, а затем отсортировать строки в массиве на основе собственных затем сохраните индекс в массиве в столбце int. Затем вместо упорядочения по порядку столбца string столбцом int.

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

Если вы хотите отсортировать визуально, проверьте и посмотрите, поддерживает ли ваш визуальный контроль специальный механизм сортировки. Это все, что я могу предложить.

0

Если возможно, при создании DataTable с запросом, есть запрос преобразовать этот столбец в числовой колонке:

SELECT *, CAST(your_column AS int) AS your_column_int 
FROM your_table 
ORDER BY your_column_int 

 Смежные вопросы

  • Нет связанных вопросов^_^