对于模糊的问题感到抱歉,但正如主题所述,如果查询成功或失败,我如何判断查询是否成功?
我在尝试获取单行时比较了成功和失败的查询,唯一的区别是我注意到那个确实设法获取行返回 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;
}
答案 0 :(得分:2)
如果查询包含语法错误,您将获得异常。
如果查询与任何记录都不匹配,您将获得一个空光标。
检查moveTo...()
的结果值,以查看移动后光标是否指向有效行。循环游标的规范方法是
if (cursor.moveToFirst()) {
do {
// do something with row data
} while (cursor.moveToNext());
}
您也可以使用cursor.getCount()
来获取行数,但从性能的角度来看,它不如上面所做的那样有效。
SQLiteDatabase
query()
不会返回null
,因此无需检查!= null
。