2014-01-11 20 views
0

使用:的Sql精簡版最大不發現列名

SQLiteDatabase db = this.getWritableDatabase(); 
    int max_request_code = 0; 
    final String MY_QUERY = "SELECT MAX(" + REQUEST_CODE + ") FROM " + TABLE_TASKS; 
    Cursor mCursor = db.rawQuery(MY_QUERY, null); 
      if (mCursor.getCount() > 0) 
      { 
      mCursor.moveToFirst(); 
      max_request_code = mCursor.getInt(mCursor.getColumnIndex(REQUEST_CODE)); 
      } 
      else 
       return 0; 
      return max_request_code; 

給我一個例外:

java.lang.IllegalStateException:無法讀取行0,列-1從CursorWindow。

上包含mCursor.getInt的行。

這是我如何創建表:

String CREATE_TASKS_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + "(" 
      +UUID + " TEXT,"+ REQUEST_CODE + " INT,"+ ACTION + " TEXT," 
      + TIME + " TEXT," + DAY + " TEXT," + RECEPIENTS+ " TEXT," +BODY + " TEXT," +SUBJECT + 
      " TEXT," +STATUS + " TEXT," +REPEAT + " TEXT," +TASK_NAME + " TEXT" +")"; 
    db.execSQL(CREATE_TASKS_TABLE); 

回答

0

用這個詞作爲對列名分配給返回MAX值:

final String MY_QUERY = "SELECT MAX(" + REQUEST_CODE + ") AS maxRequest_Code FROM " + TABLE_TASKS; 

然後從遊標中獲取價值:

max_request_code = mCursor.getInt(mCursor.getColumnIndex("maxRequest_Code")); 

或使用:

max_request_code = mCursor.getInt(0);