Как отсортировать записи в sqldatasource определенным образом - PullRequest
0 голосов
/ 10 августа 2011

У меня есть элемент управления SqlDataSource.Он в основном имеет UpdateCommand и SelectCommand.Мой gridview связан с этим элементом управления sqldatasource.Моя команда SelectCommand:

Select Username, Status from Users Order by LastLoginTime desc

Моя таблица выглядит примерно так:

ABC IN PROGESS  somedate
DEF COMPLETE    somedate
PQR PENDING     somedate
JLM COMPLETE    somedate
LKM IN PROGESS  somedate

В настоящее время результаты запроса сортируются по времени lastlogintime (т.е. somedate).Но я хочу, чтобы мои результаты сортировались по 2-му столбцу (скажем, имя этого столбца - Статус).Я хочу, чтобы записи были отсортированы таким образом, чтобы 1-й статус всех пользователей находился в состоянии ПРОГРЕСС, затем должен был появиться ОЖИДАНИЕ, а затем ЗАВЕРШЕНИЕ.Как вы можете сказать, это не простой порядок по предложению.

Как я могу сортировать таким образом с моим элементом управления SqlDataSource?

1 Ответ

5 голосов
/ 10 августа 2011

Вы должны использовать Порядок сортировки , используя CASE в SQL Попробуйте это

SELECT Name, Status FROM UsersOrder ORDER BY CASE Status
    WHEN 'IN PROGESS' THEN 1
    WHEN 'PENDING' THEN 2
    WHEN 'COMPLETE' THEN 3
    ELSE 99
END

Таким образом, ваша команда SelectCommand будет просто отвратительной. :)

SelectCommand="SELECT Name, Status FROM UsersOrder ORDER BY CASE Status WHEN 'IN PROGESS' THEN 1 WHEN 'PENDING' THEN 2 WHEN 'COMPLETE' THEN 3 ELSE 99 END" 

Боюсь, это единственное решение.

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