C# 如何按列对包含sql数据表行的数组列表进行排序?

C# 如何按列对包含sql数据表行的数组列表进行排序?,c#,sql-server,sorting,arraylist,C#,Sql Server,Sorting,Arraylist,我想这是我C语言代码的一部分: reader包含几个列,如“姓名”、“年龄”和。。。 现在我想按一列对“readertmp”进行排序,例如“name”。 有人帮我吗 如果您想尝试datatable,您可以 SqlDataReader reader = command.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(reader); 这将用您的数据填充表格。然后可以使用dataview对数据进行排序 DataView dataVi

我想这是我C语言代码的一部分:

reader包含几个列,如“姓名”、“年龄”和。。。 现在我想按一列对“readertmp”进行排序,例如“name”。
有人帮我吗

如果您想尝试datatable,您可以

SqlDataReader reader = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
这将用您的数据填充表格。然后可以使用dataview对数据进行排序

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

另外,正如其他人所建议的,您可以在sql语句中进行排序,最简单的方法是在数据库中对结果集进行排序


您可以通过在查询的最底部添加ORDER by语句来实现这一点,如果要按降序排序(默认为升序),则需要在该语句的末尾添加DESC。

最好使用DB query进行排序。 如果您不想要或不能,请使用以下选项:

ArrayList.Sort(new myComparer())
您必须创建自己的比较器类,以便对所选字段进行比较,即“名称”:


您需要使用数组来保存数据还是可以使用datatables?您可以向我们展示您正在执行的SQL命令吗?我很确定您不能以这种方式使用DataReader。您将同一个对象添加到ArrayList中。我所要做的就是按照表中的一列,通过任何方法对表进行排序。最好的排序方法是让数据库进行排序。向我们显示命令的SQL语句。tanx表示您的时间,注意,helptanx表示您的时间,注意,helptanx表示您的时间,注意和帮助
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
  }
}