我正在創建一個Android應用程序來跟蹤食譜。我能夠成功地存儲和檢索食譜,但我的is_favorite
值無法正常工作。當我把我的boolean
值(根據CheckBox
是否被選中與否),它被正確發送到我的helper.insert
功能:Android上的SQLite數據庫沒有正確存儲Int內容
public Recipe insert(String name, boolean isFavorite, String servingSize, String time, String instructions)
{
ContentValues values = new ContentValues();
values.put("name", name);
values.put("is_favorite", (isFavorite) ? 1 : 0);
values.put("serving_size", servingSize);
values.put("time", time);
values.put("instructions", instructions);
long id = databaseHelper.getWritableDatabase().insert(DATABASE_TABLE, null, values);
}
當我看着values
,is_favorite
是1,如果isFavorite
是真實的,0,如果isFavorite
是錯誤的,這正是我想要的。
但是,當我爲我剛剛創建的配方做helper.getById(int id)
時,無論我在那裏實際放置什麼值,它總是返回0爲is_favorite
列。我對這個查詢是非常標準:
SELECT _id, name, is_favorite, serving_size, time, instructions FROM recipes WHERE _id = ?
這裏是我的表創建腳本:
CREATE TABLE recipes (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, is_favorite INTEGER, serving_size TEXT, time TEXT, instructions TEXT);
任何建議,將不勝感激。如果需要更多信息,請告訴我。
謝謝!
更新:謝謝大家的迴應!我仍然不完全確定問題是什麼,但強制停止後,清除所有數據,並卸載應用程序,然後重新安裝它,它工作得很好...
P.S.我在數據庫中還有其他具有'INTEGER'數據類型的表,這些工作正常,所以我完全不知道爲什麼這個不行! – Caitlin 2013-05-14 16:47:19
這看起來對我來說是正確的。我不確定爲什麼它會失敗,如果沒有更深入的瞭解。什麼是「select *」return(而不是調出列的具體名稱) – 2013-05-14 16:58:16
is_favorites仍然返回0 :( – Caitlin 2013-05-14 17:15:23