【问题标题】:How to use limit and offset to page through the data如何使用限制和偏移量来分页数据
【发布时间】:2011-12-06 19:26:46
【问题描述】:

我是 SQLite 的新手,我不知道如何使用 limit 和 offset 从数据库中选择限制数量的数据,我的意思是我知道查询短语,但是如何在游标中使用它以便我可以将这些数据放入列表视图中?

目前我正在使用下面的代码从数据库中查询数据并在列表视图中显示它们,但似乎我为一个查询查询了太多数据并且 SQLite 无法增长,所以我想将查询拆分为一些较小的一次搞定,有人建议我试试limit和offset,但是我google了一下,网上真的没有太多。

谁能给我提供这方面的指南?一个例子或一个教程,什么都可以,thx

channellist = (ListView) findViewById(R.id.Channel);

        mDB = new ChannelDB(this);

        String[] columns = {mDB.KEY_ID, mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_PATH, mDB.KEY_DBLINK};
        String   table   = mDB.channelS_TABLE;

        c = mDB.getHandle().query(table, columns, null, null, null, null, null);

        startManagingCursor(c);

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.channelview,
                c,
                new String[] {mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_DBLINK},
                new int[] {R.id.poster, R.id.channel, R.id.douban});

        adapter.setViewBinder(new ChannelViewBinder(this));

        channellist.setAdapter(adapter);

【问题讨论】:

    标签: android sqlite listview offset


    【解决方案1】:

    传递带有数字的最后一个参数作为字符串,就像你需要 fetch 10 然后你可以这样做

    c = mDB.getHandle().query(table, columns, null, null, null, null, null,"10");
    

    更多参考请见How to use the LIMIT argument in an SQLite Query with Android

    【讨论】:

    • 嗨,@Pratik,我试过这个,但我得到了一个 SQLite 异常 1st ORDER BY term out of range - 应该在 1 到 5: 之间,编译时:SELECT _id,poster,通道、路径、dblink FROM channels ORDER BY 10 有什么想法吗?
    • 是的,谢谢,但我仍然得到一页列表,但没有加载所有项目,所以我应该创建多个游标并一起运行它们吗?
    • 你看我的问题就像在这个stackoverflow.com/questions/8395789/…
    • 谢谢,我明白了,不再有这个问题
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2017-03-27
    • 2022-01-19
    • 2018-05-01
    • 2022-08-19
    • 2018-05-25
    相关资源
    最近更新 更多