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。
为什么?
答案 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子句,所以你选择了表格中的每一行。