Java Sql lite max找不到列名
使用: 给我一个例外: java.lang.IllegalStateException:无法从CursorWindow读取第0行第1列 在包含mCursor.getInt的行上 以下是我创建表的方式:Java Sql lite max找不到列名,java,android,sqlite,Java,Android,Sqlite,使用: 给我一个例外: java.lang.IllegalStateException:无法从CursorWindow读取第0行第1列 在包含mCursor.getInt的行上 以下是我创建表的方式: SQLiteDatabase db = this.getWritableDatabase(); int max_request_code = 0; final String MY_QUERY = "SELECT MAX(" + REQUEST_CODE + ") FROM
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;
使用单词AS为返回的最大值指定列名:
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);
然后从游标获取值:
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);