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

问题是您的 ID 字段是数字,而参数是字符串;由于某些奇怪的原因,该query函数不允许其他参数类型。

尝试使用类似的表达式COLUMN_ID + " = CAST(? AS INTEGER)"

如果您的查询只有一个结果列,您可以使用一个单独的SQLiteStatement对象,您可以在其中使用bindLong().

于 2013-01-17T23:10:04.390 回答
0

以防万一有人需要它,我已经使用 rawQuery() 方法来处理这种类型的查询,因为 query() 不起作用。

于 2013-04-08T22:14:35.240 回答