我正在尝试搜索我的数据库以查看其中是否存在数字,如果存在,则返回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。
我只是不明白为什么它不能正常工作。数据库存在并且其中包含值
答案 0 :(得分:1)
你的cur.moveToFirst()返回false,表示游标中没有数据。至于为什么,我冒昧地猜测你的数据库不包含你传递给这个方法的数据。您应该在那里删除调试以验证您是否传递了您期望的值。