为什么我的数据库在android sqlite中发现不存在的东西

时间:2013-02-26 22:21:11

标签: android sqlite

        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。

为什么?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

因为你没有搜索uid-你没有where子句,所以你选择了表格中的每一行。