下面的語句cursor.moveToNext()
永遠是假的。我期望循環執行一次。我測試過查詢實際返回數據。安卓:SQLite的,cursor.moveToNext()始終返回false
有誰知道是怎麼回事?
String query ="SELECT(SELECT COUNT(*) FROM Table1) as count1, (SELECT COUNT(*) FROM Table2) as count2;";
Cursor mCursor = mDb.rawQuery(query, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
while (cursor.moveToNext()) { //<---------------return false here???
String result_0=cursor.getString(0);
}
它是否與在查詢語句中不使用「FROM」相關,以便SQLite無法將其識別爲vaild命令? – 2013-03-07 00:02:50
nop ...你的查詢應該只返回一行,所以當你使用cursor.moveToFirst()你在第一行...現在任何調用moveToNext()將返回false ... mCursor不應該爲null,所以使用smth像if(mCursor.moveToFirst()){do {/ * String res ... your stuff * /} while(mCursor.moveToNext());} else {/ * cursor has no rows should not happend * /}'或在這種情況下(因爲它應該只返回1行'if(mCursor.moveToFirst()){/ * String res ...你的東西* /}否則{/ *光標沒有行WTF?/}' – Selvin 2013-03-07 00:13:01
我愛解決方法1:刪除cursor.moveToFirst()...... haha – 2013-03-07 00:34:33