在我的项目中,我使用 sqlite 数据库来保存图片及其位置。尝试将数据插入我的数据库时出现此错误:
E/SQLiteLog: (20) statement aborts at 5: [INSERT INTO PHOTO VALUES(NULL,?,?,?,?)] datatype mismatch
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.tomer.finalproject, PID: 18550
android.database.sqlite.SQLiteDatatypeMismatchException: datatype mismatch (code 20)
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:786)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:926)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
名为 SQLiteOpenHelper 的类中的插入方法:
public void insertData(String name, String lat, String lon, byte[] image) {
SQLiteDatabase database = getWritableDatabase();
String sql = "INSERT INTO PHOTO VALUES(NULL,?,?,?,?)";
SQLiteStatement statement = database.compileStatement(sql);
statement.clearBindings();
statement.bindString(1, name);
statement.bindString(2, lat);
statement.bindString(3, lon);
statement.bindBlob(4, image);
statement.executeInsert();
} …Run Code Online (Sandbox Code Playgroud)