2015-07-04 109 views
2

我想在我的DBhelper類中創建表,並且我不斷收到此錯誤:「沒有表創建PAYEES」。SQLite'沒有這樣的表錯誤'

因此,其餘的數據庫操作也不起作用。我已經放了足夠的時間來閱讀我的CreateTableQuries。這是我的一個失敗的查詢:

private static final String tbl3_create_string = "CREATE TABLE "+tbl3_name+" ("+col1_tbl3_name+" INTEGER PRIMARY KEY AUTOINCREMENT, " + 
      col2_tbl3_name+" TEXT, "+col3_tbl1_name+" TEXT)"; 

public void onCreate(SQLiteDatabase db) { 

    try { 
     db.execSQL(tbl1_create_string); 
     db.execSQL(tbl2_create_string); 
     db.execSQL(tbl3_create_string); 
     db.execSQL(tbl4_create_string); 
     db.execSQL(tbl5_create_string); 
     global=1; 
    } 
    catch (SQLException e) 
    { 
     Log.e("DB: OnCreate Method ", e.getMessage()); 
     global=0; 
    } 
} 

當我在SQLite的查詢驗證器檢查它的工作。

+1

您可以在創建表格的位置添加代碼嗎? – mattfred

+0

通過使用一個測試變量並在onCreate(SQLiteDatabase db)方法中更改其值,我意識到onCreate根本不被調用。問題在那裏嗎?如果是的話,任何建議檢查/解決? – user3319128

+1

那麼,'onCreate'只在應用程序第一次安裝時被調用。嘗試卸載應用程序,然後添加一些日誌記錄以顯示錶是否已創建。 – mattfred

回答

0

onCreatedbHelper類僅在第一次安裝應用程序時調用。如果您已經對此課程進行了更新,請卸載該應用程序並重新安裝該應用程序,或更正確地更改版本號,然後調用該方法。還要添加一些日誌記錄以確保它正在運行。

+1

你不必重新安裝該應用程序的..您可以使用新版本調用onUpgrade方法,並在onUpgrade方法中添加代碼以刪除舊錶。 – Psypher

+0

這是正確的。我已經更新了我的答案。 – mattfred