【问题标题】:query that gets only the records needed to the page using Linq- not fetched the record based on page size使用 Linq 仅获取页面所需记录的查询 - 未根据页面大小获取记录
【发布时间】:2010-07-26 09:13:05
【问题描述】:

我已使用此查询根据页面大小获取数据表的记录。

   IEnumerable<DataRow> query1 = from row in dt.AsEnumerable().Take(page_size).Skip(offset) select row;

数据表boundTable= query1.CopyToDataTable();

第一次打开时偏移量为=0;它给出了 10 条记录,

下次我将偏移量作为 10 传递以获取接下来的 10 条记录, 但它没有给出任何枚举值。给我看一条消息说' 枚举没有结果 '

但我查询的 dt 有近 1000 条记录。我在这里做错了什么......

【问题讨论】:

    标签: c# linq datatable ienumerable


    【解决方案1】:

    您以错误的顺序使用 SkipTake。试试这个:

    IEnumerable<DataRow> query = dt.AsEnumerable()
                                   .Skip(offset)
                                   .Take(pageSize);
    

    (我删除了查询表达式语法,因为它在这里对您没有任何帮助。)

    你在做Take 然后Skip - 所以你说的是,“给我前十个记录,然后跳到这十个中的第十一个。”这显然不会给你任何结果:)

    上面说,“跳到第十一条记录,然后给我剩下的前十条记录。”

    【讨论】:

      【解决方案2】:

      改变你的跳过和采取的顺序。您要求查询从结果集中获取 10,然后跳过 10 - 不保留任何内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多