Ik denk dat je probleem zit in de kolomvolgorde en vooral de beperking van een alias voor de rowid-kolom, in jouw geval de Id kolom (Id INTEGER PRIMARY KEY AUTOINCREMENT
definieert Id als een alias van de rowid-kolom ).
- Merk op dat andere kolommen elke waarde kunnen opslaan volgens :-
Elke kolom in een SQLite versie 3-database, behalve een INTEGER PRIMARYKEY-kolom, kan worden gebruikt om een waarde van elke opslagklasse op te slaan.
- Gegevenstypen in SQLite versie 3
Zo'n kolom kan alleen een geheel getal opslaan. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
komt overeen met het invoegen van waarden volgens:-
- NULL in de naam kolom
- naam, zoals doorgegeven, in de lat kolom
- lat, zoals doorgegeven, in de lon kolom
- lon, zoals doorgegeven, in de afbeelding kolom
- afbeelding, zoals doorgegeven, in de Id-kolom (tot ziens[] kan niet worden opgeslagen in de ID-kolom)
U kunt dit oplossen door de kolomnamen op te geven of door de kolommen opnieuw te ordenen zodat ze overeenkomen met de volgorde waarin ze zijn gedefinieerd (de eerste is waarschijnlijk de betere praktijk).
Als zodanig zou een van de volgende zaken het probleem moeten oplossen:-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
of:-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";