2012-10-21 32 views
2

我發現這個代碼示例在線,但我無法讓它工作。當它運行時,應用程序崩潰。有沒有簡單的解決方案呢?從Android獲取最大的唯一ID SQLite數據庫不工作

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 

回答

1

不能對某些查詢字符串做getColumnIndex,你需要通過列名這是_id。因此,而不是

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

使用

id = mCursor.getInt(mCursor.getColumnIndex("_id")); 
+0

完美。這工作。真棒。謝謝! – EGHDK

相關問題