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 を返すようなカーソルを返します。

なんで?

4

2 に答える 2

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);
于 2013-02-26T22:24:25.567 に答える
0

uid を検索していないため、where 句がないため、テーブル内のすべての行を選択しています。

于 2013-02-26T22:24:32.223 に答える