Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:按id获取行_Android_Sqlite_Select - Fatal编程技术网

Android:按id获取行

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

我试图通过数据库行的ID获取该行,但不知何故,查询并没有返回该行。sql查询
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的记录存在。