誰能告訴我如何在android中更新數據庫。我創建了一個嵌入式數據庫的應用程序。我更改了清單中數據庫的版本並創建了on update方法。我想測試它是否正確更新數據庫,但是當我使用adb命令時,只有-r將允許我重新安裝,但它會保留數據庫。有沒有辦法來運行adb命令,這將允許我更新數據庫。謝謝。更新數據庫Android
回答
看一看下面的資源,看看他們是有幫助的:
美味書籤
http://delicious.com/tag/android+adb
http://delicious.com/tag/android+database
DevX:在Android中創建和使用數據庫
http://www.devx.com/wireless/Article/40842
學習Android:數據庫編程
http://learnandroid.blogspot.com/2008/01/android-database.html
的Android數據庫軟件包摘要
http://developer.android.com/reference/android/database/package-summary.html
對我而言,改變了我提供給DBOpenHelper類的版本號參數,該類擴展了SQLiteOpenHelper(用於創建/讀取/寫入/ etc ... Android數據庫的類)。當版本號參數遞增時,爲此參數的新值調用onUpdate()函數一次。
這裏是我會怎樣處理我的updateRow方法:
public void updateRow(long rowId, String code, String name) {
ContentValues args = new ContentValues();
args.put("code", code);
args.put("name", name);
db.update(DATABASE_TABLE, args, "_id=" + rowId, null);
}
有沒有辦法做到這一點爲多行同時,而不是每個調用「更新」? – Gaffi
如果通過更新你的意思是重建(因爲我在開發過程中做的時候我要開始與每一個我的應用程序啓動時一個全新的數據庫),然後加入此代碼之前,你在你的應用程序訪問數據庫:
this.getContext().getApplicationContext().deleteDatabase(DATABASENAME);
OR
查找ŧ他的路徑到數據庫:
SQLiteHelper sql_database_helper = new SQLiteHelper(this.getContext().getApplicationContext());
File dbFile = getDatabasePath(DATABASENAME);
Log.v("XIX","DB FILE PATH:"+dbFile.getAbsolutePath());
然後在命令提示符下刪除數據庫:
> adb devices
List of devices attached
3246%$%^$&17 device
> adb shell
$ su
su
rm mydatapath
注意:您可能無法不開裂手機
說明訪問su
命令: 如果你不想遵循r1k0給出的建議(如果你正在升級一個已經發布的應用程序,這可能是正確的做法),那麼你可以用下面的adb命令和一個restar你的應用程序將再次調用onCreate方法。
我不建議用這種方式:
public void updateRow(long rowId, String code, String name) {
ContentValues args = new ContentValues();
args.put("code", code);
args.put("name", name);
db.update(DATABASE_TABLE, args, "_id=" + rowId, null);
}
您的應用程序將容易受到SQL注入攻擊,要做到這一點的最好辦法是這樣的:
public void updateRow(long rowId, String code, String name) {
ContentValues args = new ContentValues();
args.put("code", code);
args.put("name", name);
String whereArgs[] = new String[1];
whereArgs[0] = "" + rowId;
db.update(DATABASE_TABLE, args, "_id= ?", whereArgs);
}
- 1. Android:更新數據庫表
- 2. Android SQLite數據庫更新
- 3. Android數據庫未更新
- 4. Android:更新SQLite數據庫
- 5. 更新android數據庫
- 6. 更新SQLite數據庫android
- 7. Android SimpleCursorAdapter數據庫更新時更新
- 8. 更新數據庫後顯示更新數據android
- 9. Android SQLite數據庫在更新多個更新時未更新
- 10. 我無法更新SQLite數據庫Android
- 11. Android更新 - 合併數據庫內容?
- 12. 更新數據庫android不起作用
- 13. Android和自動更新的數據庫
- 14. Android數據庫更新寄存器
- 15. 數據庫值不更新(Android)
- 16. Android更新 - 執行數據庫操作
- 17. 更新Android應用程序數據庫
- 18. 如何更新Android媒體數據庫
- 19. 更新數據庫不起作用-Android
- 20. 無法更新的Android SQLite數據庫
- 21. android更新數據庫錯誤
- 22. Android數據庫上次更新
- 23. 更新android數據庫中的值
- 24. 更新android中的數據庫方法
- 25. 保持數據庫更新 - Android
- 26. Android差異化更新數據庫
- 27. Android不更新SQLite數據庫
- 28. 的Android QuickAction和SQLite數據庫更新
- 29. Android預打包數據庫更新
- 30. Android的SQLite數據庫更新方法
感謝鏈接,但我沒有看到任何談論做adb重新安裝和更新數據庫。是否有可能這樣做,我的應用程序首次創建該數據庫的罰款,但只有在更新時它是崩潰。是否有需要輸入的清單條目? – user237259
沒關係,我發現我做錯了什麼,經過一些研究後,我發現我沒有正確地放下桌子,當我重新創建桌子時,它會出錯。我最終正確刪除表,而不是調用oncreate命令,我只是寫了一個查詢來重新創建onupdate方法中的表。 – user237259
我認爲如果你提供了一些例子而不是一堆(不相關的)鏈接,它會更有建設性。 –