Android:按id获取行
我试图通过数据库行的ID获取该行,但不知何故,查询并没有返回该行。sql查询Android:按id获取行,android,sqlite,select,Android,Sqlite,Select,我试图通过数据库行的ID获取该行,但不知何故,查询并没有返回该行。sql查询SELECT*来自表1,其中_id=100运行良好,所以我不知道原因是什么。以下是查询代码: String [] selectedArgs = new String [] {String.valueOf(selectedItemId)}; String selection = Tables.Table1.COLUMN_ID + "=?"; String [] columns = {Tables.T
SELECT*来自表1,其中_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);
有人有什么建议吗?问题是您的ID字段是一个数字,而参数是一个字符串;由于某些奇怪的原因,
query
函数不允许使用其他参数类型
尝试使用类似于COLUMN_ID+“=CAST(?AS INTEGER)”
的表达式
如果您的查询只有一个结果列,您可以使用一个单独的对象,您可以在其中使用
bindLong()
以防有人需要它,我使用了rawQuery()方法来进行此类查询,因为query()不起作用。您只是得到了一个不同的sql行?您是否尝试过记录selectedItemId
以查看它的实际内容?是的,它的内容通常是长数字,如1100等。当您省略选择时,您会得到所有记录。这是否包括一些具有所需ID的记录?是的,它包括一个具有所需ID的记录。您可以发布此SQLITE语句的示例吗?如何使用它?它返回位置-1,结果与“\u ID=?”相同。当光标中没有记录时,会发生这种情况。是的,但具有此ID的记录存在。