Android:按ID排序

时间:2013-01-17 21:50:10

标签: android sqlite select

我正在尝试通过它的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);

有人有任何建议吗?

2 个答案:

答案 0 :(得分:0)

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

尝试使用COLUMN_ID + " = CAST(? AS INTEGER)"等表达式。

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

答案 1 :(得分:0)

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