2013-02-26 2 views
0
 public boolean find_uid(String uid){ 
      String [] columns = new String [] {DB_Helper.KEY_NAME}; 
      Cursor c = database.query(DB_Helper.DATABASE_TABLE_USERS, columns,null,null, 
      null, 
      null, 
      null); 
      boolean value= c.moveToFirst(); 
      c.close(); 
      //didn't find it 

      if(!value) { 
     Log.d("value", "false"); 
     return false; 
      } 
      //did find it 
      else return true; 

     } 

Уличный uid не существует в базе данных. Я знаю это на самом деле. Но запрос всегда возвращает курсор таким образом, что c.moveToFirst() всегда возвращает true.Почему моя база данных находит несуществующие вещи в android sqlite

Почему?

+0

Откуда вы знаете факт? Поверьте, SQLite не «изобретает» ценности, чтобы вернуться к вам. – Simon

+0

Я хочу удалить это сообщение, но не могу. Один из этих нулей не должен быть нулевым. (первый). – user678392

+0

@ user678392 Не стесняйтесь редактировать свой вопрос. –

ответ

1

Вы ничего не делаете с помощью uid, который вы передаете методу. Итак, все, что вы делаете, это запрос для всех записей в этой таблице.

Попробуйте добавить предложение where к вашему запросу. Убедитесь, что вы изменили DB_Helper.UID_COLUMN на то, что у вас на самом деле есть в качестве имени столбца UID.

String where = DB_Helper.UID_COLUMN + " = ?"; 
String[] whereArgs = new String[] { uid }; 
Cursor c = database.query(DB_Helper.DATABASE_TABLE_USERS, columns,where,whereArgs, 
      null, 
      null, 
      null); 
0

Поскольку вы не ищете uid- у вас нет предложения where, поэтому вы выбираете каждую строку в таблице.

Смежные вопросы