我想从表中获取一个值。
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"));
我得到了例外。
答案 0 :(得分:3)
SQL中的表和列名称区分大小写。由于您的列名为" VALUE",因此您需要getColumnIndex(" VALUE")
答案 1 :(得分:-3)
您创建的表必须具有名称为_id的列。在添加列索引为“_id”的列之后,它将无法工作。
如果您没有列索引为“_id”的列。从settings-> app manager明确卸载您的应用。并在添加所需列后重新运行应用程序。