我在运行此查询时遇到错误:
public List<byte[]> getImageBlobs() {
List<byte[]> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT imageBlob FROM boardgames", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getBlob(0));
cursor.moveToNext();
}
cursor.close();
return list;
}
来自DB Browser的SQLite数据库结构
来自logcat:
03-06 10:43:51.342 10469-10469/? E/SQLiteLog: (1) no such column: imageBlob
03-06 10:43:51.343 10469-10469/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.boardgamehelper.boardgamehelper, PID: 10469
android.database.sqlite.SQLiteException: no such column: imageBlob (code 1): , while compiling: SELECT imageBlob FROM boardgames
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
答案 0 :(得分:0)
当需要删除数据库结构更改并重新创建数据库时。 重新安装应用程序,然后重试。
然后删除并重新安装程序来执行此操作。
答案 1 :(得分:0)
清晰的数据并不是一个好主意。如果您的应用程序已在生产中。您应该使用ALTER语句并在扩展SQLiteOpenHelper的类的onUpgrade()中添加列 每当您更改表架构时,不要忘记更新数据库版本。