android sqliteDatabase таблица отдыха - PullRequest
0 голосов
/ 04 января 2012

Я создал одну database и одну таблицу user во время работы моего приложения для Android.

Проблема в том, что когда я впервые создал user таблицу, я пропускаю поле password создавать.Поэтому я переписал свой код так, чтобы снова создать таблицу user, в которой содержится поле password.

Но проблема в том, что я поместил код в метод onCreate внутри моего класса DatabaseHelper.

Поскольку база данных уже существует, функция onCreate никогда не будет вызываться.

Может кто-нибудь сказать, как я могу решить эту проблему .?

Ответы [ 4 ]

4 голосов
/ 04 января 2012

Вы можете использовать onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) метод DatabaseHelper класс

дБ - База данных.

oldVersion - Старая версия базы данных.

newVersion - новая версия базы данных.

Вызывается, когда требуется обновить базу данных. Реализация должна использовать этот метод для удаления таблиц, добавления таблиц или выполнения любых других операций, необходимых для обновления до новой версии схемы. Документацию по SQLite ALTER TABLE можно найти здесь . Если вы добавляете новые столбцы, вы можете использовать ALTER TABLE, чтобы вставить их в оперативную таблицу. Если вы переименуете или удалите столбцы, вы можете использовать ALTER TABLE, чтобы переименовать старую таблицу, затем создать новую таблицу и затем заполнить новую таблицу содержимым старой таблицы. Параметры

2 голосов
/ 04 января 2012

Простой вариант - просто удалить приложение на устройстве в меню настроек (или использовать команду adb uninstall), тогда база данных также будет удалена и воссоздана, если вы снова запустите приложение.

Быстро и просто, без необходимости внедрения onUpgrade или чего-то подобного, когда приложение выйдет на рынок / действительно будет использоваться.

2 голосов
/ 04 января 2012

доступно несколько возможностей:

  1. если у вас есть root-доступ на вашем устройстве или вы используете эмулятор - вы можете использовать adb shell, чтобы найти базу данных SQLite и просто удалить ее (так чтоон будет создан заново при следующем запуске вашего приложения) или с помощью инструмента командной строки sqlite - измените структуру таблицы самостоятельно.Конечно, это подходит, только если вы что-то упустили во время разработки и хотите быстро исправить это, не думая ни о каких существующих пользователях.

  2. увеличьте номер версии вашего приложения и внедрите Метод onUpgrade , где вы можете выполнить все необходимые преобразования в уже существующей базе данных.Это следует использовать для реальных обновлений версий приложений, думая о существующих пользователях и их установках приложений.

0 голосов
/ 04 января 2012

Вы можете просто получить доступ к своей базе данных sqlite с помощью оболочки adb, вам потребуется root-доступ, если ваше приложение установлено на телефоне.Вот некоторая справка - ищите Изучение баз данных sqlite3 из удаленной оболочки

Другой способ - удалить вашу базу данных из Настройки-> Приложения-> Управление приложениями-> Ваше приложение и нажать кнопку Очистить.Кнопка данных, которая удалит ваш Sqlite db и ваши общие настройки.После этого вы можете перезапустить приложение снова, используя правильную таблицу DDL, и ваша база данных будет создана с правильным определением.

В программном плане вам нужно будет переопределить onOpen из вашего помощника и поставить DDL изменения таблицы с помощьюdb.execSql ().Поместите туда свою таблицу изменений или, в качестве альтернативы, сначала бросьте свою таблицу и создайте новую с правильным определением.Вот класс 'reference SQLiteOpenHelper и SQLiteDatabase и, пожалуйста, также обратитесь к здесь

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