如何检查sqlite表中是否有满足某些条件的记录

时间:2014-12-21 09:43:08

标签: java android sqlite

我有以下代码

public int getIngCount(String id,String ingrediant) {
        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS2 + " WHERE id = "+id+ " AND ingrediant = "+ingrediant;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);


        // return count
        return cursor.getCount();

    }

但是当没有满足条件的记录时,它会导致异常(没有这样的列)而不是返回0.

请帮我找到解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:2)

ingrediant应视为字符串文字,而不是列名称等标识符。在SQL中,您使用单引号作为字符串文字。不过,使用?占位符来绑定文字值是个更好的主意:

String countQuery = "SELECT  * FROM " + TABLE_CONTACTS2 + " WHERE id = "+id+ " AND ingrediant = ?";
Cursor cursor = db.rawQuery(countQuery, new String[] { ingrediant });

此外,关闭后不要调用任何游标方法。