1

我有一个包含所有食品的数据库。我想在数据库中搜索可变食品并获取其光标。让我们以食物 = 橙子为例。在终端中键入时,以下行给出了正确的结果。

SELECT * from food WHERE item = 'Oranges'

为了实现它,我在扩展 SQLiteOpenHelper 的类中创建了一个名为 getOneItem 的方法,如下所示。

public Cursor getOneItem(String itemName) {
    return myDataBase.query(TABLE, null, C_NAME+" = " +itemName , null, null, null, null);

}

但是当调用该方法时,我收到错误“没有这样的列:Oranges,编译时

SELECT * from table WHERE item = Oranges

为什么计算机在搜索名为 Oranges 的列而不在列内搜索 Oranges?

当我将方法修改为:

public Cursor getOneItem(String itemName) {
    return myDataBase.query(TABLE, null, C_NAME+" = '" +itemName +"'", null, null, null, null);

}

我得到 CursorIndexOutOfBoundException, Index -1 requested with size 1

4

1 回答 1

3

第二个参数不应为空...指定您需要显示的列..

   return  myDataBase.query( TABLE, new String[] {
                    C_NAME
                    }, 
                    C_NAME + "= ?" , 
                    new String[] { itemName }, ,         
                    null, 
                    null, 
                    null);
于 2013-01-14T09:58:36.877 回答