sqlite没有返回任何结果

时间:2015-08-14 12:13:57

标签: android sqlite android-sqlite

我在墙下。我有一个非常简单的方法

public List<com.fixus.portals.model.Foothold> findAll() {
    List<com.fixus.portals.model.Foothold> result = new ArrayList<com.fixus.portals.model.Foothold>();
    Cursor cursor = this.db.query(MainHelper.TABLE_FOOTHOLD, FOOTHOLD_FIELDS, null, null, null, null, null);

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        com.fixus.portals.model.Foothold foothold = this.mapToObject(cursor);
        result.add(foothold);
        cursor.moveToNext();
    }
    cursor.close();

    return result;

}

它应该返回表中的每条记录,但它返回0(零)。我不知道为什么。我调试了整个过程查询看起来没问题。当我复制被调用的查询并在DB上手动运行它时,有什么好笑的我会收到结果。但是,当我从Android级别执行此操作时,我什么都不返回。我做错了什么?

1 个答案:

答案 0 :(得分:1)

将此代码模式用于游标:

public List<com.fixus.portals.model.Foothold> findAll() {
    List<com.fixus.portals.model.Foothold> result = new ArrayList<com.fixus.portals.model.Foothold>();
    Cursor cursor = this.db.query(MainHelper.TABLE_FOOTHOLD, FOOTHOLD_FIELDS, null, null, null, null, null);
    com.fixus.portals.model.Foothold foothold = this.mapToObject(cursor);

    if(cursor.moveToFirst()){
        do{
        result.add(foothold);
        }while(cursor.moveToNext());

    }else{
        //Your code for no data
    }
    cursor.close();

    return result;

}

确保你的桌子不是空的。