SQLite:成功和失败查询之间的区别?

时间:2014-10-07 12:23:35

标签: android sqlite cursor

对于模糊的问题感到抱歉,但正如主题所述,如果查询成功或失败,我如何判断查询是否成功?

我在尝试获取单行时比较了成功和失败的查询,唯一的区别是我注意到那个确实设法获取行返回 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;
}

1 个答案:

答案 0 :(得分:2)

如果查询包含语法错误,您将获得异常。

如果查询与任何记录都不匹配,您将获得一个空光标。

检查moveTo...()的结果值,以查看移动后光标是否指向有效行。循环游标的规范方法是

if (cursor.moveToFirst()) {
  do {
    // do something with row data
  } while (cursor.moveToNext());
}

您也可以使用cursor.getCount()来获取行数,但从性能的角度来看,它不如上面所做的那样有效。

SQLiteDatabase query()不会返回null,因此无需检查!= null