我正在尝试创建从我的表中检索最大 id 的方法,但我遇到了问题。
这是我的方法。工作正常,但返回值为0,
public int getLastId() {
openDB();
int id = 0;
final String MY_QUERY = "SELECT MAX(_id) AS _id FROM organize";
Cursor mCursor = mDb.rawQuery(MY_QUERY, null);
try {
if (mCursor.getCount() > 0) {
mCursor.moveToFirst();
id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
closeDB();
}
return id;
}
我能解决这个问题吗,非常感谢
最佳答案
重写这一行
id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));
至
id = mCursor.getInt(mCursor.getColumnIndex("_id"));
或者更好
id = mCursor.getInt(0);//there's only 1 column in cursor since you only get MAX, not dataset
看看 LogCat,它会告诉你你的问题。
关于Android 和 SQLite - 从表中检索最大 id,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7064279/