0

我分两步从服务器获取数据。

首先是从我的表中随机获取 25 条记录并将该记录显示给用户,现在我添加了一个按钮。当用户单击该按钮时,我必须显示数据库中的下 25 条记录,但我需要确保这些记录不包含已显示的任何人。如何在 C# 中执行此操作

这是我获得前 25 条记录的代码

var records = context.couponservice.Query().Take(25).ToList();

提前致谢 。

4

4 回答 4

1

您可以.Skip(pageSize * numberOfPages)在 之前使用.Take(pageSize)来跳过您不想显示的许多记录/页面。

于 2013-02-06T12:03:51.457 回答
1

怎么样

int position = 25; // Increase this for each page
var nextRecords = context.couponservice.Query().Skip(position).Take(25).ToList();
于 2013-02-06T12:04:42.967 回答
0

试试这个

for(i=0;i<noOfPages;i++)
{
   var records = context.couponservice.Query().Skip(i * 25).Take(25).ToList();
}

这会给你每次新的记录。

于 2013-02-06T12:07:01.960 回答
0

跟踪您已经提取的项目。例如,将 ID 存储在列表或其他内容中。然后仅从您的来源收集其 ID 不在列表中的项目。从该结果中,您可以选择 25 个随机项目。

例如:

//Your datasource
var source = new Dictionary<int, string>
{
    {1, "One"},
    {2, "Two"},
    {3, "Three"},
    {4, "Four"},
    {5, "Five"},
    {6, "Six"},
    {7, "Seven"},
    {8, "Eight"},
    {9, "Nine"},
    {10, "Ten"}
};

//The ID's of already fetched items
var taken = new List<int> { 2, 7, 3, 6 };

//Subset: all items that haven't been taken yet:
var temp = source.Where(s => taken.Contains(s.Key) == false);

现在,您可以从“temp”中选择随机元素并将这些项目的 ID 添加到“taken”列表中。

于 2013-02-06T12:40:51.463 回答