2015-07-04 110 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