Android Sqlite数据库:它不能';我无法识别我在现有数据库中添加的新列或新表

Android Sqlite数据库:它不能';我无法识别我在现有数据库中添加的新列或新表,android,Android,我有一个工作数据库。我刚刚在表中又添加了一列。它一直在说不。所以我更改了表名。现在它说没有那个表名。然后我更改了数据库名称。它仍然给出了错误。在我更改了表名并删除了我添加的额外列之后,它工作得很好。你能帮我弄清楚怎么了吗? 如何在干净的仿真器上运行代码?如何验证创建表的代码是否正在执行?如何从Emulator中获取sqlite db,并使用sqlite数据库浏览器查看它,以检查表是否确实存在 非常感谢! Tong在现实世界中,您必须更改数据库版本并在onUpgrade(..)中迁移更改 在开发时

我有一个工作数据库。我刚刚在表中又添加了一列。它一直在说不。所以我更改了表名。现在它说没有那个表名。然后我更改了数据库名称。它仍然给出了错误。在我更改了表名并删除了我添加的额外列之后,它工作得很好。你能帮我弄清楚怎么了吗? 如何在干净的仿真器上运行代码?如何验证创建表的代码是否正在执行?如何从Emulator中获取sqlite db,并使用sqlite数据库浏览器查看它,以检查表是否确实存在

非常感谢!
Tong

在现实世界中,您必须更改数据库版本并在
onUpgrade(..)中迁移更改

在开发时,您可以在Eclipse的运行配置中为您的项目选中“擦除用户数据”,然后关闭emulator并再次启动应用程序。

在现实世界中,您必须更改数据库版本并在
onUpgrade(..)中迁移更改。


开发时,您可以在Eclipse的项目运行配置中检查“擦除用户数据”,然后关闭emulator并再次启动应用程序。

我发现了错误。添加最后一列后,我遗漏了逗号。简单的错误可能会花很多钱。

我发现了错误。添加最后一列后,我遗漏了逗号。简单的错误可能会花费很多。

供将来参考(人们用谷歌搜索问题):

试试这个命令

this.deleteDatabase("database_name");
在主活动中,其中“database_name”是数据库的名称。如果修改任何表结构(添加列),请始终执行此操作,否则可能必须在SQLLiteOpenHelper中使用onUpgrade方法

正如您所说的,确保在字符串命令末尾的db.execSQL(命令)中没有任何逗号。

供将来参考(人们用谷歌搜索问题):

试试这个命令

this.deleteDatabase("database_name");
在主活动中,其中“database_name”是数据库的名称。如果修改任何表结构(添加列),请始终执行此操作,否则可能必须在SQLLiteOpenHelper中使用onUpgrade方法


正如您所说,确保在字符串命令末尾的db.execSQL(命令)中没有任何逗号。

谢谢!我仍然得到同样的信息。没有列名。。。。你能解释一下下面的代码是如何工作的吗。我可以将数据库命名为DBV1和DBV2。但是Eclipse如何重新认识不同的版本呢?public void onUpgrade(SQLiteDatabase db,intoldversion,intnewversion){db.execSQL(“如果存在记录,则删除表”);onCreate(db);}谢谢Alex!我仍然得到同样的信息。没有列名。。。。你能解释一下下面的代码是如何工作的吗。我可以将数据库命名为DBV1和DBV2。但是Eclipse如何重新认识不同的版本呢?public void onUpgrade(SQLiteDatabase db,intoldversion,intnewversion){db.execSQL(“如果存在记录,则删除表”);onCreate(db);}