Выборочная сортировка столбца DataSet - PullRequest
0 голосов
/ 30 сентября 2008

У меня есть DataSet, который содержит несколько столбцов. Одним из этих столбцов является число - большую часть времени. Поскольку иногда это строка, в базе данных это столбец varchar (10).

Однако, когда вы сортируете столбец varchar, он сортирует его как строку. Вместо этого я хочу попытаться как-то переопределить это так, чтобы оно сортировало целые числа как целые числа; это не так уж сложно, и у меня уже есть функция, которая делает это в другом месте моего кода. Тем не менее, я не думаю, что можно дать типизированный DataSet, как у меня есть собственный тип с собственной реализацией сортировки, и из того, что я вижу, BindingSource вообще не думает о столбцах, что сильно затрудняет сортировку их. Я легко могу сделать это с помощью функции сортировки ListView / DataGridView - но я бы хотел, чтобы дисплей работал в виртуальном режиме из-за количества данных, которые у меня есть, и для этого мне все равно нужно обеспечить собственную сортировку.

Есть ли способ сделать то, что я хочу сделать?

1 Ответ

2 голосов
/ 30 сентября 2008

Я думаю, что вам лучше всего добавить новый вычисляемый столбец, который преобразует varchar (10) в int, и отсортировать по нему.

myDataTable.Columns.Add("Sorter", typeof(System.Int32), "Convert(TextColumn, 'System.Int32')");

Это вызовет исключения, когда строка в вашем столбце varchar (которую я назвал "TextColumn" в приведенном выше коде), но вы можете обойти это, используя вызов функции Iif () в выражении .

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