2010-12-15 2 views
0

я вошел этот код для сравнения записей с records.it базы данных выполнения, но она показывает уже существует для каждого входящего записи (это может быть старой или новой записи.)он не возвращает истинное значение

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; 
    } 

пожалуйста, помогите мне .............

ответ

2

поставить пробел после ГДЕ:

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

Это должно работать.

0

Возможные проблемы:

  1. Ваша ГДЕ-оговорка конкатенация слова category со словом WHERE.
  2. Выполняет ли функция Integer любую рационализацию переданного ей значения, что может повлиять на то, что присваивается a?
  3. Вы показываете a, но тест c.getCount() - эти два значения фактически одинаковы? (см. пункт 2). Кроме того, c.getCount() все еще действует на второй звонок?
  4. Есть } отсутствует где-то - это функция, фактически идущая по пути, который вы так думаете?
Смежные вопросы