gpt4 book ai didi

android - 原始查询不工作android

转载 作者:行者123 更新时间:2023-11-29 22:19:54 25 4
gpt4 key购买 nike

我正在将数据插入表中,然后获取插入项的 id,但我的原始查询正在返回:android.database.CursorIndexOutOfBoundsException:请求索引 -1,大小为 1

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(COL_FIRST_NAME, athlete.getFirstName());
values.put(COL_LAST_NAME, athlete.getLastName());
values.put(COL_AGE, athlete.getAge());
values.put(COL_GRADE, athlete.getGrade());

db.insert(TABLE_ATHLETES, null, values);

Cursor cursor = db.rawQuery("SELECT MAX(" + COL_ATHLETE_ID + ") AS " + COL_ATHLETE_ID +
" FROM " + TABLE_ATHLETES, null);
int id = cursor.getInt(cursor.getColumnIndex(COL_ATHLETE_ID));
athlete.setAthleteID(id);
Log.e("", "ID: " + id);

最佳答案

SQLite 查询方法返回位于第一个条目之前的游标对象。在尝试从光标读取之前,您需要调用 moveToFirst() 或 moveToNext(),例如:

cursor.moveToFirst();

该方法还返回一个 bool 值,指示它是否成功。例如,如果您的结果集为空,它将返回 false,并且您会知道不要尝试读取值。在您的具体情况下,查询的性质是它应该始终返回单行,因此可以说不需要这样的测试。因此上面的一行代码就足够了。

关于android - 原始查询不工作android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30835217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com