課程
/移動開發
/Android
/Android攻城獅的第二門課(第3季)
我在db.execsQL 下面又加了一行(再加一列數據),但最后打印出來還是只有第一行數據。
2016-09-05
源自:Android攻城獅的第二門課(第3季) 2-5
正在回答
加幾行,就Log幾次
你應該是在程序運行之后又加了一行數據吧?
如果是的話,是因為onCreate(Bundle savedInstanceState)方法只有在首次創建數據庫時才會被調用,你運行過程序后創建的數據庫已經存在,后面再次運行,onCreate(Bundle savedInstanceState)方法不會被調用,所以你在里面加的數據就沒有意義。
你可以在模擬器上將應用卸載或清空該應用的data,這樣創建的數據庫就不存在了,這時你再次運行程序,即可。
還有一種方法使用onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法,添加如下代碼:
db.execSQL("drop?table?if?exists?stutb"); onCreate(db);
在MainActivity中修改代碼:
DBOpenHelper?helper?=?new?DBOpenHelper(this,?DATABASENAME,null,2);
?
舉報
手勢識別、數據存儲和4大組件,讓你牢牢掌握之前的基礎知識點
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-09-05
加幾行,就Log幾次
2016-10-15
你應該是在程序運行之后又加了一行數據吧?
如果是的話,是因為onCreate(Bundle savedInstanceState)方法只有在首次創建數據庫時才會被調用,你運行過程序后創建的數據庫已經存在,后面再次運行,onCreate(Bundle savedInstanceState)方法不會被調用,所以你在里面加的數據就沒有意義。
你可以在模擬器上將應用卸載或清空該應用的data,這樣創建的數據庫就不存在了,這時你再次運行程序,即可。
還有一種方法使用onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法,添加如下代碼:
在MainActivity中修改代碼:
?