我正在尝试通过它的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);
有人有任何建议吗?
答案 0 :(得分:0)
问题是你的ID字段是一个数字,而参数是一个字符串;由于某些奇怪的原因,query
函数不允许其他参数类型。
尝试使用COLUMN_ID + " = CAST(? AS INTEGER)"
等表达式。
如果您的查询只有一个结果列,则可以使用单独的SQLiteStatement
对象,您可以使用bindLong()
。
答案 1 :(得分:0)
以防有人需要它,我使用rawQuery()方法来处理这种类型的查询,因为query()不起作用。