1

我正在我的数据列表中实现分页。(视觉工作室 2008)

为此,我有数据表,我想在其上进行分页查询。

我有以下数据表:

在此处输入图像描述

我想实现以下 SQLquery:

select top 5 * from (select   ROW_NUMBER() OVER (ORDER BY Index) as Row from users) T where Row > " 10

我想对这个数据表进行与上面相同的查询。

我很困惑如何使用“top”来查询数据表。

为此,我做了以下尝试:

DTResult.Select("Index < " & Integer.Parse(ddlPage.SelectedValue.ToString()))

(注意:ddlPage我的下拉列表是否包含用于分页的数字,例如 5、10、25 等)

这种尝试没有给我预期的结果。

请帮我。

4

3 回答 3

2

您必须使用 LINQ 查询来找出您想要的输出。

我想这个链接会给你答案

使用linq和c#查询数据表

于 2013-09-20T05:46:18.830 回答
2

试试下面的代码,它会给你你想要的输出。

DataView dv = new DataView(DTResult);
dv.RowFilter = "ID < " + ddlPage.SelectedValue.ToString();
DTResult = dv.ToTable(); 

在此之后,您将直接将“DTResult”数据表提供给您的数据列表。

于 2013-09-20T05:55:47.820 回答
2

您必须使用 Linq 在 C# 中获取类似 SQL 的操作

DataTable MyTable = new DataTable();// Yur Table here
  var FirstResult = from Row in MyTable.AsEnumerable()
                    orderby Row.Field<int>("Index")
                    select new
                    {
                      KioskId = Row.Field<string>("KioskId"),
                      Index = Row.Field<int>("Index"),
                      FileName = Row.Field<string>("FileName")
                    };
  var AfterRowNumbering = FirstResult.Select((x, index) => new  {
                      KioskId=x.KioskId,
                      Index=x.Index,
                      FileName = x.FileName,
                      Row_Number = index
                      }).Take(5);
 var FinalResult = from row in AfterRowNumbering
                   where row.Row_Number > 10
                   select row;

这个表达式可以进一步简化。

于 2013-09-20T06:25:24.153 回答