2013-02-26 56 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; 

     } 

數據庫中不存在sting uid。我知道這是事實。但是查詢總是返回一個遊標,使得c.moveToFirst()總是返回true。爲什麼我的數據庫在android sqlite中找不到不存在的東西

爲什麼?

+0

你怎麼知道這個事實?相信我,SQLite不會「發明」價值回報給你。 – Simon 2013-02-26 22:27:15

+0

我想刪除這篇文章,但不能。其中一個空值不應爲空。 (第一個)。 – user678392 2013-02-26 22:28:55

+0

@ user678392隨意編輯您的問題。 – 2013-02-27 02:04:15

回答

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子句,所以你要選擇表中的每一行。

相關問題