0

所以我再一次对我的神奇宝贝相关应用程序的数据库内容有一点问题,现在我正在重新审视应用程序开发的那部分......一个相对较新的(数据库类可能是问题所在几乎是最新的[参见下面提到的修复])我的 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'sonCreate 应该读作:

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 中缺少逗号。

4

1 回答 1

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" + ")";
于 2013-04-11T08:05:10.887 回答