2010-12-15 64 views
0

je suis entré dans ce code pour comparer les enregistrements avec la base de données records.it exécution, mais il montre existe déjà pour chaque enregistrement entrant (il peut être ancien ou nouveau record.)il ne revient pas la vraie valeur

boolean ifExisting() { 
     //Cursor c = db.rawQuery("SELECT * FROM sharelist WHERE category='"+str1+"'",null); 

Cursor c = db.rawQuery("SELECT * FROM sharelist WHERE" + "category" + "=" + category,null); 


     Integer a=new Integer(c.getCount()); 

     Log.e("getcount",a.toString()); 
     if(c.getCount()>-1) 
     { return false;} 
    else{ 
     return true; 
    } 

S'il vous plaît aidez-moi .............

Répondre

2

mettre un espace après OÙ:

"SELECT * FROM sharelist WHERE " + "category" + "=" + category,null 

Cela devrait fonctionner.

0

Problèmes possibles:

  1. Votre clause WHERE est concaténer le mot category avec le mot WHERE.
  2. Est-ce que la fonction Integer effectue une quelconque rationalisation de la valeur qui lui est transmise, ce qui peut affecter ce qui est affecté à a?
  3. Vous affichez a, mais le test c.getCount() - ces deux valeurs sont-elles identiques? (voir point 2). En outre, est c.getCount() toujours valide sur le deuxième appel?
  4. Il manque } quelque part - est-ce que la fonction suit réellement le chemin que vous pensez être?