_stringVal = 游标.getString(游标.getColumnIndex(KEY_QTY));这个光标sqlite出现数据错误显示如何修复错误
public String CheckOrderExists(long recipe_id) {
String _stringVal = "0";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_ADDCART + " WHERE " + KEY_RECIPE_ID+ " = ?", new String[]{String.valueOf(recipe_id)});
if (cursor.moveToFirst()) {
_stringVal = cursor.getString(cursor.getColumnIndex(KEY_QTY));
if (_stringVal.equals("0")) {
db.execSQL("DELETE FROM " + TABLE_ADDCART + " WHERE " + KEY_RECIPE_ID+" = ?" , new String[]{String.valueOf(recipe_id)});
}
}
cursor.close();
db.close();
return _stringVal;
}
在您的代码中,您有以下行:
cursor.getString(cursor.getColumnIndex(KEY_QTY));
基于文档,方法 getColumnIndex:
返回给定列名的从零开始的索引,如果是则返回 -1 列不存在。如果您希望该列存在,请使用 getColumnIndexOrThrow(java.lang.String) 相反,这将使 错误更清楚。
要解决此问题,您有两种选择: