Android数据库错误,来自检索Blob类型。

时间:2016-03-06 15:56:11

标签: android sqlite blob

我在运行此查询时遇到错误:

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数据库结构

enter image description here

来自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)

2 个答案:

答案 0 :(得分:0)

当需要删除数据库结构更改并重新创建数据库时。 重新安装应用程序,然后重试。

然后删除并重新安装程序来执行此操作。

答案 1 :(得分:0)

清晰的数据并不是一个好主意。如果您的应用程序已在生产中。您应该使用ALTER语句并在扩展SQLiteOpenHelper的类的onUpgrade()中添加列 每当您更改表架构时,不要忘记更新数据库版本。