Myślę, że Twój problem dotyczy kolejności kolumn i, co najważniejsze, ograniczenia aliasu kolumny z wierszami, w Twoim przypadku Identyfikatora kolumna (Id INTEGER PRIMARY KEY AUTOINCREMENT
definiuje Identyfikator jako alias kolumny rowid ).
- Pamiętaj, że inne kolumny mogą przechowywać dowolną wartość zgodnie z :-
Dowolna kolumna w bazie danych SQLite w wersji 3, z wyjątkiem kolumny INTEGER PRIMARYKEY, może służyć do przechowywania wartości dowolnej klasy pamięci.
- Typy danych w SQLite w wersji 3
Taka kolumna może przechowywać tylko wartość całkowitą. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
oznacza wstawianie wartości zgodnie z :-
- NULL w nazwie kolumna
- imię i nazwisko przekazane do łac kolumna
- lat, zgodnie z przekazem, do lonu kolumna
- lon, zgodnie z przekazem, do obrazu kolumna
- obraz przekazany do kolumny Id (bye[] nie może być przechowywany w kolumnie Id)
Możesz to naprawić, podając nazwy kolumn lub zmieniając kolejność kolumn, aby dopasować je do kolejności, w jakiej zostały zdefiniowane (pierwsza opcja jest prawdopodobnie lepszą praktyką).
W związku z tym jedna z poniższych czynności powinna rozwiązać problem:-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
lub :-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";