Jeg tror, at dit problem er med kolonnerækkefølgen og vigtigst af alt begrænsningen af, at et alias for den rowide kolonne, i dit tilfælde Id kolonne (Id INTEGER PRIMARY KEY AUTOINCREMENT
definerer Id som et alias for kolonnen rowid ).
- Bemærk, at andre kolonner kan gemme enhver værdi i henhold til:-
Enhver kolonne i en SQLite version 3-database, undtagen en INTEGER PRIMARYKEY-kolonne, kan bruges til at gemme en værdi af enhver lagerklasse.
- Datatyper i SQLite version 3
En sådan kolonne kan kun gemme en heltalsværdi. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
svarer til at indsætte værdier som pr. :-
- NULL i navnet kolonne
- navn, som overført, til lat kolonne
- lat, som passeret, ind i lon kolonne
- lon, som den er gået ind i billedet kolonne
- billede, som overført, til Id-kolonnen (farvel[] kan ikke gemmes i Id-kolonnen)
Du kan løse dette ved enten at angive kolonnenavnene eller ved at omarrangere kolonnerne, så de matcher den rækkefølge, de blev defineret i (det første er uden tvivl den bedste praksis).
Som sådan burde et af følgende løse problemet :-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
eller :-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";