如何从DataView中选择前5条记录,其中包含所有按降序排列的记录?

时间:2011-11-28 10:50:47

标签: asp.net

这是我的代码:

DataSet dsCategoryRes = new DataSet();
dsCategoryRes = oCourse.SubscribedResources(Profile.UserName, CustomerId, "0", 0);
DataTable dt = dsCategoryRes.Tables[0];
DataView dv = new DataView(dt);


Int32 maxCnt;
if (dv.Table.Rows.Count <= 5)

    maxCnt = dv.Table.Rows.Count - 1;

else

    maxCnt = 4;
int cnt;
for (cnt = 0; cnt <= maxCnt; cnt++)
{

    dv.Sort = "CategoryName DESC";
    //dv.Table.Rows.Cast<System.Data.DataRow>().Take(5);

    dt = dv.ToTable();
    dt.Rows.Cast<System.Data.DataRow>().Take(5);
    rptSub.DataSource = dt;


    rptSub.DataBind();
}

使用此方法可以按降序排序,但我无法选择前5个值。

1 个答案:

答案 0 :(得分:0)

这样的东西?

var dt = new DataTable();

dt.Columns.Add("ID", typeof(Int32));
dt.Columns.Add("Name");
//Creating some dummy data
for (int i = 0; i < 10; i++)
{
   var newRow = dt.NewRow();
   newRow["ID"] = i;
   newRow["Name"] = "dummyData" + i;
   dt.Rows.Add(newRow);
}

var dt2 = new DataTable();
dt2 = (from rows in dt.AsEnumerable().OrderByDescending(x => x.Field<int>("ID")) select rows).Take(5).CopyToDataTable();