2013-04-11 110 views
0

因此,我再次遇到与我的Pokémon相关应用程序的数据库内容有点问题,现在我正在重新审视应用程序开发的这一部分...一个相对较新的(可能问题所在的数据库类几乎是最新的[见下面提到的修复])我的eclipse项目的版本是在这里:http://www.filehosting.org/file/details/429262/PokeUtility.zip尝试插入SQLiteDatabase时出错

所以,问题是,我将此代码添加到我的mainactivity只是为了测试,看看我是否可以把数据放在数据库中:

DatabaseHandler db = new DatabaseHandler(this) ; 
db.addPokemon(new Pokemon(001, "Bulbasaur", "Grass", "Poison")) ; 

但是会发生什么似乎是抛出SQLiteException像这样(http://oi47.tinypic.com/332v49c.jpg) 它似乎是说我的数据库中的表中没有“type2”列? :/ 我没有在DatabaseHandler类中设置正确的东西吗?哦,顺便说一句看到,因为我认为它的问题:因为我挂一个稍微出了项目的最新版本有一个校正,使:DatabaseHandler's的onCreate应阅读:

String CREATE_POKEMON_TABLE = "CREATE TABLE " + TABLE_POKEMON + "(" 
      + KEY_DEX_NO + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
      + KEY_TYPE + " TEXT," + KEY_TYPE2 + "TEXT" + ")"; 
    db.execSQL(CREATE_POKEMON_TABLE); 

我相信版本的链接zip文件在SQL中缺少一个逗号。

回答

0

您的问题是您的创建查询,您在type2列后面缺少空格。其实你有这个:

+ KEY_TYPE2 + "TEXT" + ")"; 

添加空间,它应该工作(现在你需要重新创建你的数据库)。更正的查询:

String CREATE_POKEMON_TABLE = "CREATE TABLE " + TABLE_POKEMON + "(" 
      + KEY_DEX_NO + " INTEGER PRIMARY KEY, " 
      + KEY_NAME + " TEXT, " 
      + KEY_TYPE + " TEXT, " 
      + KEY_TYPE2 + " TEXT" + ")"; 
+0

我不确定是否有另一个问题,或者我只是没有做一切正确的......:/你能解释我如何重新创建数据库? – 2013-04-11 08:30:26

+0

你还在吗?如果没有,其他人能否在上面的评论中回答我的问题? – 2013-04-11 08:50:28

+0

@TheIceMage unistall应用程序还包含与其相关的所有数据并重新安装。 – Sajmon 2013-04-11 08:51:59

相关问题