Как отсортировать список массивов, содержащий строку таблицы данных SQL по столбцам? - PullRequest
0 голосов
/ 19 февраля 2012

Я это часть моего кода на C #:

 SqlDataReader reader = command.ExecuteReader();
 ArrayList readertmp = new ArrayList();
 while (reader.Read())
  {
      readertmp.Add(reader);
  }

Reader содержит несколько столбцов, таких как "имя", "возраст" и ... теперь я хочу отсортировать "readertmp" по одномуиз столбцов, например, «имя».кто-нибудь поможет мне?

Ответы [ 3 ]

0 голосов
/ 20 февраля 2012

Самый простой способ - заказать набор результатов в базе данных.

Вы можете сделать это, добавив оператор ORDER BY в самом низу вашего запроса, вам нужно добавить DESC в конец этого оператора, если вы хотите сортировать в порядке убывания (по умолчанию используется Ascending).

0 голосов
/ 20 февраля 2012

Лучше разобраться с запросом БД.Если вы не хотите или не можете, используйте это:

ArrayList.Sort(new myComparer())

Вы должны создать свой собственный класс компаратора, который будет сравнивать выбранное поле, то есть "имя":

public class myComparer : IComparer 
{
  int IComparer.Compare(Object x, Object y)  
  {
      string field1 = ((SqlDataReader)x)["name"];
      string field2 = ((SqlDataReader)y)["name"];
      return(String.Compare(field2, field1)); // reversed
  }
}
0 голосов
/ 19 февраля 2012

, если вы хотите попробовать данные, вы можете сделать

SqlDataReader reader = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);

это заполняет таблицу вашими данными. затем вы можете использовать dataview для сортировки данных.

DataView dataView = new DataView(dt);
dataView.Sort = " Name DESC";

также, как другие предложили, вы можете просто отсортировать в своем выражении SQL

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