2011-03-17 198 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,表示遊標中沒有數據。至於爲什麼,我敢冒險猜測你的數據庫不包含你傳遞給這個方法的數據。你應該在那裏放一個調試來驗證你傳遞的是你期望的值。

相關問題