我正在我的 Android 应用程序中尝试一个简单的 SQL 命令,以获取所选人员的年龄:
public int getAge(){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM persons WHERE name =? " + MainActivity.selectedPerson.getText().toString(), null);
int age = cursor.getInt(3); // column with ages
cursor.close();
db.close();
return age;
}
但是当我运行我的应用程序时,当我调用函数 getAge() 时它会崩溃。我收到以下错误:
SQLiteException: no such column: Max: , while compiling: SELECT * FROM persons WHERE name = Max
我不明白。表中有名称“Max”。我究竟做错了什么?提前致谢。
编辑2:有了这个:
Cursor cursor = db.rawQuery("SELECT name FROM persons WHERE name = '" + MainActivity.selectedPerson.getText().toString() + "'", null);
我得到一个不同的错误:
08-27 19:43:47.573: E/AndroidRuntime(6161): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
这是什么意思?