2

このコードサンプルをオンラインで見つけましたが、動作させることができません。実行すると、アプリがクラッシュします。これに対する簡単な解決策はありますか?

public long getMaxID() {
        int id = 0;
        final String MY_QUERY = "SELECT MAX(_id) AS _id FROM db_table";
        Cursor mCursor = mDb.rawQuery(MY_QUERY, null);  

              if (mCursor.getCount() > 0) {
                mCursor.moveToFirst();
                id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));
              }

    return id;
        }

私のlogcatエラーは次のようです:

10-21 07:48:32.704: E/AndroidRuntime(4023): Caused by: java.lang.IllegalStateException: get field slot from row 0 col -1 failed
4

1 に答える 1

1

一部のクエリ文字列では実行できませんgetColumnIndex。_idである列名を渡す必要があります。だから代わりに

 id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));

使用する

 id = mCursor.getInt(mCursor.getColumnIndex("_id"));
于 2012-10-21T08:13:16.930 に答える