2011-03-17 14 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; 
    } 

私がしている間にループするとすぐに跳ね返ります。私がwhileループを実行すると、if(c.movetofirst())はfalseを返します。

私はちょうどそれが正しく動作しない理由を取得しないでください。データベースが存在し、その中に値があります

+0

クエリを出力し、sqliteで手動で実行しましたか?私はwhere節が空の結果セットを与えていると推測しています。 – sreimer

答えて

1

cur.moveToFirst()はfalseを返します。つまり、カーソルにデータが存在しません。なぜ、私はあなたのデータベースには、このメソッドに渡しているデータが含まれていないと推測するつもりです。そこにデバッグをドロップして、期待する値を渡していることを確認する必要があります。

関連する問題