android.database.sqlite.SQLiteException: no such column: item.toString (code 1): , while compiling: INSERT INTO list(found) VALUES (item.toString)
Эта ошибка связана с тем, что item.toString не заключен в одинарные кавычки. Это можно исправить с помощью: -
db.execSQL("INSERT INTO list(found) VALUES ('item.toString')");
НО действительно ли вы хотите вставить строку, в которой найденный столбец имеет значение "item.toString". Я очень сомневаюсь в этом, и вы вполне можете получить множество строк с одинаковым, вероятно, бесполезным значением.
То, что вам нужно, это: -
db.execSQL("INSERT INTO list(found) VALUES (?)", new String[]{item.toString});
Тогда значение, котороебудет вставлено, что бы метод item s toString возвращал. То есть ? заменяется элементами в массиве (первый - заменяется первым элементом массива, второй - вторым элементом и т. Д.). В замене? также используются правильные корпуса.
Альтернативный, но не рекомендуемый способ - использовать: -
db.execSQL("INSERT INTO list(found) VALUES ('" + item.toString + "')");
- Этоне рекомендуется, так как он открыт для возможного внедрения SQL.
Аналогично ,
db.execSQL("DELETE FROM list WHERE found = item.toString");
Будет иметь те же проблемы, которые должны быть: -
db.execSQL("DELETE FROM list WHERE found = ?",new String[]{item.toString});