我正在尝试创建从我的表中检索最大 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/

10-09 09:30