1

DB に、id、group_id、uri_id、name、phone のフィールドからなるテーブルがあります。私のDBマネージャーファイルには、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 を持つレコードがある場合でも、取得するたびに。

なぜそれが起こっているのか、それを修正する方法は?

4

2 に答える 2

2

あなたのWHERE条項が間違っているからだと思います。

変化する

"group_id="+group_id+"&contact_uri_id="+uri_id

"group_id="+group_id+" AND contact_uri_id="+uri_id
于 2013-09-26T19:55:13.350 に答える
0

これで試してみてください。

カーソル mContactsCursor = db.query(Constants.TABLE_NAME_GROUP_CONTACTS, null, "group_id = " + group_id + " & contact_uri_id = " + uri_id, null, null, null, null);

クエリの文間に空白がありません。

于 2013-09-26T19:55:34.680 に答える