Jag tror att ditt problem är med kolumnordningen och viktigast av allt begränsningen att ett alias för den röda kolumnen, i ditt fall Id kolumn (Id INTEGER PRIMARY KEY AUTOINCREMENT
definierar Id som ett alias för kolumnen rowid ).
- Observera att andra kolumner kan lagra vilket värde som helst enligt :-
Vilken kolumn som helst i en SQLite version 3-databas, förutom en INTEGER PRIMARYKEY-kolumn, kan användas för att lagra ett värde för vilken lagringsklass som helst.
- Datatyper i SQLite version 3
En sådan kolumn kan bara lagra ett heltalsvärde. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
motsvarar att infoga värden enligt :-
- NULL i namnet kolumn
- namn, som passerat, till lat kolumn
- lat, som passerat, in i lon kolumn
- lon, som passerat, in i bilden kolumn
- bild, som skickad, till Id-kolumnen (hejdå[] kan inte lagras i kolumnen Id)
Du kan fixa detta genom att antingen tillhandahålla kolumnnamnen eller genom att ändra ordning på kolumnerna så att de matchar den ordning som de definierades i (det förra är utan tvekan bättre praxis).
Som sådan bör något av följande lösa problemet :-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
eller :-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";