Saya pikir masalah Anda adalah dengan urutan kolom dan yang paling penting adalah pembatasan alias untuk kolom rowid, dalam kasus Anda Id kolom (Id INTEGER PRIMARY KEY AUTOINCREMENT
mendefinisikan Id sebagai alias kolom rowid ).
- Perhatikan kolom lain dapat menyimpan nilai apa pun sesuai :-
Setiap kolom dalam database SQLite versi 3, kecuali kolom INTEGER PRIMARYKEY, dapat digunakan untuk menyimpan nilai kelas penyimpanan apa pun.
- Tipe Data Dalam SQLite Versi 3
Kolom seperti itu hanya dapat menyimpan nilai integer. String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
sama dengan memasukkan nilai sesuai :-
- NULL ke dalam nama kolom
- nama, seperti yang diteruskan, ke dalam lat kolom
- lat, saat diteruskan, ke lon kolom
- lon, saat diteruskan, ke dalam gambar kolom
- gambar, seperti yang diteruskan, ke dalam kolom Id (sampai jumpa[] tidak dapat disimpan di kolom Id)
Anda dapat memperbaikinya dengan memberikan nama kolom atau dengan mengurutkan ulang kolom agar sesuai dengan urutan pendefinisiannya (yang pertama bisa dibilang merupakan praktik yang lebih baik).
Karena itu, salah satu dari berikut ini akan memperbaiki masalah :-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
atau :-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";