所以我再一次与我的神奇宝贝相关应用程序的数据库内容有点问题,现在我正在重新审视应用程序开发的那部分...一个相对较新的(数据库类可能在哪里)问题在于几乎是最新的[见下面提到的修复])我的eclipse项目的版本在这里:http://www.filehosting.org/file/details/429262/PokeUtility.zip
所以,问题是,我将此代码添加到我的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文件中的版本中缺少逗号。
答案 0 :(得分: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" + ")";