为什么这个数据库查询不能正常工作

时间:2011-03-17 14:34:10

标签: android

我正在尝试搜索我的数据库以查看其中是否存在数字,如果存在,则返回true,否则返回false。这是我的查询

    public boolean getPhone(String where){
    Cursor cur = db.query(DATABASE_TABLE, new String [] {ID,PHONE_NUMBER},PHONE_NUMBER + "='" + where + "'",null,null,null,null);

        if(cur.moveToFirst()){

            do{
                String test = cur.getString(cur.getColumnIndex(PHONE_NUMBER));
                Log.v("ContactDB", test);
                if(test.equals(where))
                    return true;

             }while(cur.moveToNext());
        }
            return false;
    }

当它到达do while循环时,它会跳过它以返回false,甚至没有像它应该那样做。如果我把do while循环输出,if(c.movetofirst())测试假猜测,因为它也会向右跳转返回false。

我只是不明白为什么它不能正常工作。数据库存在并且其中包含值

1 个答案:

答案 0 :(得分:1)

你的cur.moveToFirst()返回false,表示游标中没有数据。至于为什么,我冒昧地猜测你的数据库不包含你传递给这个方法的数据。您应该在那里删除调试以验证您是否传递了您期望的值。