2011-03-17 148 views
0

我想搜索我的数据库,看看它是否存在一个数字,如果是的话返回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。如果我把while循环取出,if(c.movetofirst())会测试错误的即时猜测,因为它也跳到右边返回false。

我只是不明白为什么它不能正常工作。该数据库存在并且具有值

+0

你输出了查询并在sqlite中手动运行它?我猜你的where子句给出了一个空的结果集。 – sreimer 2011-03-17 14:42:42

回答

1

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

相关问题