AndroidSQLite RawQuery结果总是说,当数据库中不存在它时,就会找到它

AndroidSQLite RawQuery结果总是说,当数据库中不存在它时,就会找到它,android,sqlite,Android,Sqlite,好的,当我看这个例子时,我显然遗漏了一些东西。我有下面的代码,它不断返回第一个if语句,表明该项存在,但它在我查询的任何东西上都会这样做。我知道它们不存在,因为我查询的某些内容甚至不到12个字符,不可能匹配。我的理解是使用moveToFirst();返回匹配的结果,但文档中说moveToFirst只是将其移动到第一行,是否成功。所以,我认为它之所以总是成功,是因为创建了光标,并且光标确实移动到了第一行。如果是这样的话,我如何检查数据库中是否存在值?谢谢你的帮助,我不知道这是为什么逃避我,我有它的

好的,当我看这个例子时,我显然遗漏了一些东西。我有下面的代码,它不断返回第一个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();

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

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

您确定
表\u name
只包含一个名称吗?如果不是,结果将是真实的