Android SQLite RawQuery结果总是说它在数据库中不存在时被发现

时间:2013-01-10 01:11:17

标签: android sqlite

好的,所以当我看这些例子时,我显然遗漏了一些东西。我有以下代码,它继续返回项目所在的第一个if语句,但它在我查询的任何内容上执行。我知道它们不存在,因为我查询的一些内容甚至不是12个字符,并且不可能匹配。我的理解是使用moveToFirst();要么返回匹配的结果,要么文档说moveToFirst只是将它移动到第一行并且天气成功。所以,我认为它总是成功的原因是因为光标被创建并且光标确实移动到第一行。如果这是怎么回事我怎么才检查我的数据库中是否存在值?感谢您的帮助,不知道为什么这会让我逃避,我前几天使用相同的方法让它工作,但也许我改变了一些东西。

    String selectQuery = "SELECT * FROM " + TABLE_NAMES + " WHERE " + COLUMN_NAME = '" + contents +"'";
    Cursor cursor = myDataBase.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        contents = "The item" + contents +" is a valid.";
        tv.setText(contents);
    }else{
         contents = "The item " + contents + " is not a valid WIC item";
         tv.setText(contents);
    }
    close();

2 个答案:

答案 0 :(得分:0)

您的查询语句中有一些错误。请用以下内容替换它:

String selectQuery = "SELECT * FROM " + TABLE_NAMES + " WHERE " + COLUMN_NAME + "=" + contents;

答案 1 :(得分:0)

您确定TABLE_NAMES只包含一个名称吗?如果不是,结果将是真的