检查DB中是否存在ID

时间:2013-09-26 19:49:29

标签: android sqlite select

我的数据库中有一个表,其中包含以下字段: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的记录。

为什么会发生这种情况以及如何解决?

2 个答案:

答案 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);

您的查询在句子之间没有空格。