Переименование столбца в базе данных Android sqlite приводит к ошибке - PullRequest
1 голос
/ 10 июня 2010

Я очень тонко изменял учебник Блокнот для Android - все, что я сделал, это переименовал столбец с 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

Не удается ли что-то переименовать?Все, что я изменяю, - это программа Exercise 1 Solution из учебника Notepad.

Ответы [ 2 ]

0 голосов
/ 16 июня 2010

name может быть зарезервированным словом ... попробуйте [name] в своем запросе или попробуйте другое имя, например, name1 (просто для проверки, является ли это причиной).

0 голосов
/ 10 июня 2010

Вы полностью уверены, что БД воссоздается?

Я думаю, что удаление приложения приведет к удалению БД.

Попробуйте запустить:

adb uninstall com.android.demo.notepad1

, а затем снова запустите приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...