あなたの問題は列の順序にあると思います。最も重要なのは、ROWID列のエイリアス(この場合は Id )の制限です。 列( Id INTEGER PRIMARY KEY AUTOINCREMENT
Idを定義します ROWID列のエイリアスとして 。
- 他の列は次のように任意の値を格納できることに注意してください:-
-
INTEGER PRIMARYKEY列を除く、SQLiteバージョン3データベースの任意の列を使用して、任意のストレージクラスの値を格納できます。
- SQLiteバージョン3のデータ型
-
このような列は整数値のみを格納できます。 String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
次のように値を挿入することと同じです:-
- 名前にNULL 列
- latに渡された名前 列
- lat、渡されたとおり、 lon 列
- lon、渡されたとおり、画像 列
- Id列に渡された画像( bye [] Id列には保存できません)
これを修正するには、列名を指定するか、列を定義された順序に一致するように列を並べ替えます(前者の方がおそらくより良い方法です)。
そのため、次のいずれかで問題が解決するはずです:-
String sql = "INSERT INTO PHOTO (Id, name, lat, lon, image) VALUES(NULL,?,?,?,?)";
または:-
String sql = "INSERT INTO PHOTO VALUES(?,?,?,?,NULL)";