如何按列排序包含一行sql数据表的数组列表?
我,这是我的代码在C#中的一部分:如何按列排序包含一行sql数据表的数组列表?
SqlDataReader reader = command.ExecuteReader();
ArrayList readertmp = new ArrayList();
while (reader.Read())
{
readertmp.Add(reader);
}
阅读器包含了几个栏,如“名”,“年龄”和... 现在我想的一个排序“readertmp”列例如“名称”。 anynody帮助我?
,如果你想尝试一个数据表,你可以做
SqlDataReader reader = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
该填充表与您的数据。您可以使用数据视图对数据进行排序。
DataView dataView = new DataView(dt);
dataView.Sort = " Name DESC";
也,如其他人所说,你可以只是排序在SQL语句中
tanx为你的时间,关注和帮助 – arnvd 2012-02-21 07:15:28
最简单的方法是给结果排序在数据库中设置。
您可以通过在查询的最底部添加ORDER BY语句来完成此操作,如果要按降序排序(升序为默认值),则需要在该语句的末尾添加DESC。
tanx为你的时间,注意和帮助 – arnvd 2012-02-21 07:15:52
最好用数据库查询进行排序。 如果你不想或无法使用本:
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
}
}
tanx为您的时间,关注和帮助 – arnvd 2012-02-21 07:16:06
你需要使用数组来保存数据还是可以使用数据表? – peroija 2012-02-19 13:27:46
你可以向我们展示**你正在执行的SQL命令吗? – 2012-02-19 13:30:17
我很肯定你不能以这种方式使用DataReader。您将相同的对象添加到ArrayList。 – Steve 2012-02-19 13:31:48