尝试插入SQLiteDatabase时出错

时间:2013-04-11 08:02:42

标签: android sqlite

所以我再一次与我的神奇宝贝相关应用程序的数据库内容有点问题,现在我正在重新审视应用程序开发的那部分...一个相对较新的(数据库类可能在哪里)问题在于几乎是最新的[见下面提到的修复])我的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文件中的版本中缺少逗号。

1 个答案:

答案 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" + ")";