1

このクエリがあります

public Cursor control(String a){
    return mDb.query(ProductsMetaData.C_TABLE, null,ProductsMetaData.A+ "=?" , new String[] {String.valueOf(a)},  null, null, null, null);
}

そしてそれは動作します。ここで「AND」を実装する必要があります。なぜなら、行のみが必要なためですがProductsMetaData.A = aProductsMetaData.B = b私がやっていることはうまくいきません。

public Cursor control(String a, String b){
    return mDb.query(ProductsMetaData.C_TABLE, null,ProductsMetaData.A+ "=?" + ProductsMetaData.B + "=?" , new String[] {String.valueOf(a), String.valueOf(b)},  null, null, null, null);
}

誰かが私を助けることができますか?

4

1 に答える 1

2

AND次のキーワードを追加するだけです。

ProductsMetaData.A + "=? AND " + ProductsMetaData.B + "=?"

aまた、パラメータbはすでに文字列であるため、次を簡単に使用できます。

new String[] {a, b}

どうすれば update と delete も実装できますか?

削除は簡単です:

public int delete(String a, String b) {
    return mDb.delete(ProductsMetaData.C_TABLE, ProductsMetaData.A + "=? AND " + ProductsMetaData.B + "=?", new String[] {a, b});
}

更新には ContentValues オブジェクトが必要です。

public int update(String newA, String newB, String oldA, String oldB) {
    ContentValues values = new ContentValues();
    values.put(ProductsMetaData.A, newA);
    values.put(ProductsMetaData.B, newB);
    return mDb.update(ProductsMetaData.C_TABLE, values, ProductsMetaData.A + "=? AND " + ProductsMetaData.B + "=?", new String[] {oldA, oldB});
}

最後に、何度も使用していることに気付いた場合は、 、、およびのように変数にProductsMetaData.A + "=? AND " + ProductsMetaData.B + "=?"保存できます。static finalC_TABLEAB

private static final String WHERE_A_B = ProductsMetaData.A + "=? AND " + ProductsMetaData.B + "=?";
于 2012-11-10T19:14:21.207 に答える