在Android sqlite数据库中重命名列会导致错误

时间:2010-06-10 03:28:47

标签: mysql android sqlite

我一直在修改Android的Notepad tutorial非常巧妙 - 我所做的就是将列从title重命名为name

在:

    public static final String KEY_TITLE = "title";

...

    private static final String DATABASE_CREATE =
    "create table notes (_id integer primary key autoincrement, "
    + "title text not null, body text not null);";

后:

    public static final String KEY_TITLE = "name";

...

    private static final String DATABASE_CREATE =
    "create table notes (_id integer primary key autoincrement, "
    + "name text not null, body text not null);";

然而,它总是导致:

06-10 03:29:38.421: ERROR/AndroidRuntime(344): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.demo.notepad1/com.android.demo.notepad1.Notepadv1}: 
android.database.sqlite.SQLiteException: no such column: name: , while compiling: SELECT _id, name, body FROM notes

...

06-10 03:29:38.421: ERROR/AndroidRuntime(344): Caused by: android.database.sqlite.SQLiteException: 
no such column: name: , while compiling: SELECT _id, name, body FROM notes

我没有重命名吗?我正在修改的是Notepad教程中的练习1解决方案程序。

2 个答案:

答案 0 :(得分:0)

您是否完全确定正在重新创建数据库?

我认为卸载应用程序会删除数据库。

尝试跑步:

adb uninstall com.android.demo.notepad1

然后再次运行您的应用程序。

答案 1 :(得分:0)

name可以是保留字...在查询中尝试[name],或尝试使用其他名称,例如name1(仅用于测试,看看是否是原因)。