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。

为什么?

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 回答