我有一個android應用程序,需要檢查數據庫中是否有記錄,如果沒有,處理一些事情並最終插入它,並且只要數據存在就從數據庫中讀取數據。我使用SQLiteOpenHelper的子類來創建並獲取SQLiteDatabase的可重寫實例,如果它不存在,我認爲它會自動處理創建表(因爲執行該操作的代碼位於onCreate(...)中。 ) 方法)。但是,當表尚不存在,並且第一個方法運行在SQLiteDatabase對象上時,我有一個查詢調用(...),我的logcat顯示「I/Database(26434)」的錯誤: sqlite返回:錯誤代碼= 1,msg =沒有這樣的表:appdata「,果然,appdata表沒有被創建。如何檢查Android SQLite數據庫中是否存在表?
任何想法爲什麼?
我正在尋找一種方法來測試表是否存在(因爲如果沒有,數據當然不在其中,並且我不需要直到我寫入它才能讀取它,這看起來似乎創建正確的表),或一種方法來確保它被創建,並且僅僅是空的,在時間上爲第一次調用查詢(...)
編輯
這是後貼下面的兩個答案:
我想我可能已經發現了這個問題。出於某種原因,我決定爲每個表創建不同的SQLiteOpenHelper,即使它們都訪問同一個數據庫文件。我認爲重構該代碼只使用一個OpenHelper,並在其onCreate內創建兩個表可能會更好...
不錯!謝謝你的工作 – Mayank 2015-01-08 05:22:14