0

ID でデータベースの行を取得しようとしていますが、どういうわけかクエリがその行を返しません。SQLクエリSELECT * From Table1 Where _id = 100はうまく機能するので、理由はわかりません。クエリのコードは次のとおりです。

    String [] selectedArgs = new String [] {String.valueOf(selectedItemId)};
    String selection = Tables.Table1.COLUMN_ID + "=?";
    String [] columns = {Tables.Table1.COLUMN_ID, Tables.Table1.COLUMN_NAME};
    Cursor c = foodDB.query(Tables.Food.TABLE_NAME, columns, selection, selectedArgs, null, null, null);

誰か提案はありますか?

4

2 に答える 2

0

query() が機能しないため、誰かがそれを必要とする場合に備えて、そのようなタイプのクエリが機能するために rawQuery() メソッドを使用しました。

于 2013-04-08T22:14:35.240 に答える
0

問題は、パラメータが文字列であるのに対し、ID フィールドが数値であることです。関数は、query何らかの奇妙な理由で他のパラメーターの型を許可しません。

のような表現を使ってみてくださいCOLUMN_ID + " = CAST(? AS INTEGER)"

クエリに結果列が 1 つしかない場合はSQLiteStatementbindLong().

于 2013-01-17T23:10:04.390 に答える