我的数据库中有一个表,其中包含以下字段:id,group_id,uri_id,name,phone。 在我的数据库管理器文件中,我有一个函数来检查组中是否存在uri_id。这是功能:
public boolean is_contact_in_group(String uri_id, int group_id)
{
SQLiteDatabase db = db_helper.getReadableDatabase();
Cursor mContactsCursor = db.query(Constants.TABLE_NAME_GROUP_CONTACTS, null,
"group_id="+group_id+"&contact_uri_id="+uri_id, null, null, null, null);
if(mContactsCursor.moveToFirst())
{
mContactsCursor.close();
db.close();
return true;
} else {
mContactsCursor.close();
db.close();
return false;
}
}
目前在我的活动中我只想记录输出:
private void add_new_contact(String uri_id, String name, String number)
{
int group_id = curr_group_id;
String contact_uri_id = uri_id;
String contact_name = name;
String contact_phone = number;
Log.i(DEBUG_TAG, "Is contact exist: "+manager.is_contact_in_group(contact_uri_id, group_id));
}
然而,每当我得到false
时,即使有某个group_id和uri_id的记录。
为什么会发生这种情况以及如何解决?
答案 0 :(得分:2)
我想是因为你的WHERE
条款错了。
更改
"group_id="+group_id+"&contact_uri_id="+uri_id
到
"group_id="+group_id+" AND contact_uri_id="+uri_id
答案 1 :(得分:0)
试试这个。
Cursor mContactsCursor = db.query(Constants.TABLE_NAME_GROUP_CONTACTS,null, “group_id =”+ group_id +“& contact_uri_id =”+ uri_id,null,null,null,null);
您的查询在句子之间没有空格。