[英]SQLite: difference between successful and failed query?
很抱歉這個模糊的問題,但是正如主題所指出的,如果我只有查詢結果,如何判斷查詢是成功還是失敗?
在嘗試獲取單行時,我比較了成功查詢和失敗查詢,我注意到的唯一區別是,設法獲取行的查詢返回了mCount = 1,而另一個返回了mCount = 0 。
編輯:返回游標的方法。
public Cursor getElement(int elementID){
SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.query(TABLE_NAME, new String[]{COLUMN_NAME_UN_ID, COLUMN_NAME_UN_NAME}, COLUMN_NAME_UN_ID + "=?", new String[]{String.valueOf(elementID)}, null, null, null, null);
if(cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
如果查詢包含語法錯誤,您將獲得異常。
如果查詢不匹配任何記錄,您將獲得一個空光標。
檢查moveTo...()
的結果值,以查看光標在移動后是否指向有效行。 游標的典型循環方式是
if (cursor.moveToFirst()) {
do {
// do something with row data
} while (cursor.moveToNext());
}
您也可以使用cursor.getCount()
來獲取行數,但是從性能的角度來看,它的效率不如上面的do-while。
SQLiteDatabase
query()
不會返回null
因此無需檢查!= null
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.