-1

我正在使用具有(出于此问题的目的)2 列的表。一列可以取值 1、2、3、4 或 5(仅用于指示另一列中数据的类别——可能有 5 个类别)。另一列仅包含一个字符串,例如“Grant1”。

文本列标题为“Title”,整数列标题为“Category”

我需要做的是根据 Category 列对行进行排序,然后将每行中的所有数据放在 C# 中的列表中。这样我以后可以使用列表来查看属于该类别的所有标题数据。

这是我到目前为止所拥有的:

DataTable dt = AnimalGrants.Tables["AnimalGrants"];
    string columnName = "Title";
    List<string> ListOfAnimalGrantTitles = new List<string>();
    int i = 0;
    foreach (DataRow dr in dt.Rows)
    {
        ListOfAnimalGrantTitles.Add(dr.Table.Columns[i].ToString());
    }

我所拥有的工作不正常......我想在上传之前确定这是否有效。任何 SQL 或 C# 专家都可以帮助我了解如何完成此操作吗?我想我在这里有一个好的开始,但我害怕陷入语法错误。

DataSet AnimalGrants = tp.GetItems("CFHudsonGrants", "WHERE Category = 1;", "");
4

1 回答 1

0

我有点困惑,但下面的代码应该在第一列中创建一个值列表,但按第 2 列中的值对该列表进行排序:

DataTable dt = AnimalGrants.Tables["AnimalGrants"];
string columnName = "Title";
List<string> ListOfAnimalGrantTitles = new List<string>();
int i = 0;
foreach (DataRow dr in dt.Rows.Cast<DataRow>().OrderBy(t => t[1]))
{
    ListOfAnimalGrantTitles.Add(dr[0]);
}

也就是说,您最好在 SQL 查询中对其进行排序...

于 2013-07-25T19:09:33.477 回答