Android 尝试插入SQLiteDatabase时出错

Android 尝试插入SQLiteDatabase时出错,android,sqlite,Android,Sqlite,因此,我再一次对我的神奇宝贝相关应用程序的数据库内容产生了一些问题,现在我正在重新审视应用程序开发的这一部分。。。我的eclipse项目的一个相对较新的版本(可能是问题所在的数据库类几乎是最新的[请参阅下面提到的修复])如下所示: 所以,问题是,我将此代码添加到mainactivity中只是为了测试是否可以将数据放入数据库: DatabaseHandler db = new DatabaseHandler(this) ; db.addPokemon(new Pokemon(001, "Bulba

因此,我再一次对我的神奇宝贝相关应用程序的数据库内容产生了一些问题,现在我正在重新审视应用程序开发的这一部分。。。我的eclipse项目的一个相对较新的版本(可能是问题所在的数据库类几乎是最新的[请参阅下面提到的修复])如下所示:

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

DatabaseHandler db = new DatabaseHandler(this) ;
db.addPokemon(new Pokemon(001, "Bulbasaur", "Grass", "Poison")) ;
但发生的情况是,它似乎像这样抛出SQLiteException() 似乎是说我的数据库中的表中没有“type2”列/ 我没有在DatabaseHandler类中设置正确的内容吗?哦,顺便说一句,我认为这很重要:考虑到我链接了一个稍微过时的项目版本,有一点需要更正:
DatabaseHandler的
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中缺少一个逗号。

您的问题是创建查询,您在
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" + ")";

我不确定是否还有其他问题,或者我只是没有把一切都做好……:/你能解释一下我是如何重新创建数据库的吗?你还在吗?如果没有,其他人可以回答我在上面评论中的问题吗?@TheIceMage unistall应用程序也包含所有相关数据并再次安装。好的,我已经完成了,目前正在等待emulator重新启动…希望它现在可以正常工作。好的,最后在稍微修改代码后,它可以工作了:D感谢最初的帮助。也就是说,我也添加了一条语句来将结果打印到logcat,这会抛出异常……但现在一切都好了。