我正在我的datalist中实现分页。 (visual studio 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等)
这种尝试并没有给我预期的结果。
请帮帮我。
答案 0 :(得分:2)
此链接可能会帮助您......并参考它......
http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx
答案 1 :(得分:2)
答案 2 :(得分:2)
尝试使用以下代码,它会为您提供所需的输出。
DataView dv = new DataView(DTResult);
dv.RowFilter = "ID < " + ddlPage.SelectedValue.ToString();
DTResult = dv.ToTable();
在此之后,您将直接提供&#34; DTResult&#34;数据表到您的datalist。
答案 3 :(得分: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;
这个表达式可以进一步简化。