0

intとstringを使ってクエリを実行する方法を理解するのはあまりうまくいきません。2つのintを使用した例と、2つの文字列を使用した例を見つけました。さまざまな組み合わせを試しましたが、何も機能しないようです。以下は、私が試したものとうまくいかなかったものの2つの例です。私は何を間違っているのですか。私はinpspection_idとitem_nameの両方を独自に使用しましたが、どちらも機能します。

1を試してください:

public int getId(int inspection_id ,String item_name)throws Exception
{
    Cursor c = db.query(DB_TABLE, new String[] {KEY_INSPECTION_ID, KEY_ITEM_NAME},
            "inspection_id=" + inspection_id +"item_name='"+ item_name + "'", null, null, null, null);
    int id=c.getColumnIndex(KEY_ROWID);
    c.moveToFirst();
    String result=c.getString(id);
    int primId=Integer.parseInt(result);
    c.close();
    return primId;

}

2を試してください:

public int getId(int inspection_id ,String item_name)throws Exception
{
    Cursor c = db.query(DB_TABLE, new String[] {KEY_INSPECTION_ID, KEY_ITEM_NAME},
            "inspection_id=" + inspection_id +"AND KEY_ITEM_NAME = ?", new String[]{item_name}, null, null, null);
    int id=c.getColumnIndex(KEY_ROWID);
    c.moveToFirst();
    String result=c.getString(id);
    int primId=Integer.parseInt(result);
    c.close();
    return primId;

}

3を試してください:

public int getId(int inspection_id ,String item_name)throws Exception
{
    String s_id= Integer.toString(inspection_id);
    Cursor c = db.query(DB_TABLE, new String[] {KEY_INSPECTION_ID, KEY_ITEM_NAME},
            "KEY_INSPECTION_ID = ? AND KEY_ITEM_NAME = ?",
             new String[] {  s_id, item_name }, null, null, null);
    int id=c.getColumnIndex(KEY_ROWID);
    c.moveToFirst();
    String result=c.getString(id);
    int primId=Integer.parseInt(result);
    c.close();
    return primId;

}
4

1 に答える 1

2

try it this way, with single quotes for the int ones.

"inspection_id='" + inspection_id +"'item_name='"+ item_name + "'"
于 2012-04-15T20:36:02.997 に答える