2016-03-06 29 views
0

我得到一個錯誤,當我運行此查詢:從DB瀏覽器Android數據庫錯誤,從檢索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; 
} 

數據庫結構的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) 
+0

重新安裝應用程序,然後重試。 –

+0

Adb拉下數據庫並查看錶的結構 - 我懷疑您的創建查詢是錯誤的,或者您的表的舊版本沒有該列,並且沒有正確更新它。 –

+0

@ahmadaghazadeh什麼應用程序?應用程序或Sqlite瀏覽器 – Shank

回答

0

當數據庫結構變化需要刪除並重新創建數據庫。 重新安裝應用程序,然後重試。

然後刪除並重新安裝程序來做到這一點。

0

清除數據不是一個好主意。如果你的應用程序已經在生產。您應該使用ALTER語句並在擴展SQLiteOpenHelper的類的onUpgrade()中添加列。不要忘記在更改表模式時更新數據庫版本。