使用query / rawquery无法获得任何结果#SQLite#

时间:2012-04-06 15:23:14

标签: android sqlite

当我使用下面的代码查询数据库时,我无法获得任何结果,但我可以通过控制台上的sql命令获得结果。

DBHelper dbHelper = new DBHelper(SampleActivity.this, "contents.db", null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
//Cursor cursor = db.query("ContentsTable", new String[] { "title" }, "id<10", null, null, null, null);
Cursor cursor = db.rawQuery("select title from ContentsTable", null);
db.close();
cursor.close();

我调试程序并在运行db.rawquery( * )后找到了游标的mCount = -1和mStackTrace = DatabaseObjectNotClosedException,就像照片显示的那样:http://flic.kr/p/bw9P2o

下面是DBHelper类:     公共类DBHelper扩展了SQLiteOpenHelper {

    public DBHelper(Context context, String name, CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String createTable = "create table ContentsTable(id int, title varchar(100))";
        db.execSQL(createTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        System.out.println("Update Database");
    }

}

1 个答案:

答案 0 :(得分:1)

原谅这个简单的问题,但你有没有添加行?

修改

在访问返回的数据之前,您必须先调用cursor.moveToFirst()