Raw Query返回错误

时间:2013-01-14 19:06:34

标签: android sqlite fts3

这不应该没用吗?

Cursor cursor = ourDatabase.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE " +     KEY_NAME + " = \'chaman\'",, null);

我不知道但是当我尝试拨打

时出现错误
cursor.getString(1);

它说      CursorIndexOutofBoundsException

我使用

创建了我的表格
db.execSQL("CREATE VIRTUAL TABLE " + DATABASE_TABLE
                + " USING fts3 (" + KEY_ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME
                + " TEXT NOT NULL, " + KEY_ADDRESS
                + " TEXT NOT NULL, " + KEY_CONTACT + " TEXT NOT     NULL, "
                + KEY_BALANCE + " DOUBLE);");

&安培; 我确信chaman存在于我的表中,因为我可以在我的数据库中查看它。

怎么了?请帮帮我。我被困在这里过了1个小时。 :/

3 个答案:

答案 0 :(得分:0)

CursorIndexOutOfBoundException表示您忘记调用moveToFirst() 调用了moveToFirst(),但未检查其结果(即Cursor为空)...

答案 1 :(得分:0)

您需要拨打moveToFirst

if(cursor.moveToFirst()) {  // returns false if no results
  // do stuff here
}

答案 2 :(得分:0)

最好使用cursor.getCount()检查光标计数,如果计数> 0,然后执行moveToFirst,然后尝试使用cursor.getString(1)

访问该元素