Android-sqlite无法从Cursor Window读取第0行,col -1

时间:2016-03-11 17:00:09

标签: android sqlite android-cursor

我想从表中获取一个值。

 cursor=db.rawQuery("select value from '" + tableName + "' where key= '" + name + "' ",null);

if (cursor.getCount()>0){
        if (cursor.moveToFirst()){
                String value= cursor.getString(cursor.getColumnIndex("value"));
                return value;
        }
        cursor.close();

    }

我得到例外:

Couldn't read row 0, col -1 from Cursor Window.Make sure cursor is initialised correctly before accessing data from it.

当我使用时:

        cursor.getString(0);

我能够得到我需要的价值。

如果我使用,

       cursor.getString(cursor.getColumnIndex("value"));

我得到了例外。

HEre是我桌子的快照: enter image description here

2 个答案:

答案 0 :(得分:3)

SQL中的表和列名称区分大小写。由于您的列名为" VALUE",因此您需要getColumnIndex(" VALUE")

答案 1 :(得分:-3)

您创建的表必须具有名称为_id的列。在添加列索引为“_id”的列之后,它将无法工作。

如果您没有列索引为“_id”的列。从settings-> app manager明确卸载您的应用。并在添加所需列后重新运行应用程序。