SQLiteException: нет такой таблицы - PullRequest
4 голосов
/ 14 февраля 2011

Я использую свою собственную базу данных SQLite3, а не создаю новую каждый раз, когда запускается мое приложение, поскольку у меня есть несколько таблиц со статическими данными, которые я пытаюсь отобразить.Я создал свою базу данных и поместил ее в папку с активами.Затем я создал свой помощник по базе данных, и когда я запускаю свое приложение, я могу открыть свою базу данных без проблем, но когда я пытаюсь открыть свою первую таблицу, используя следующий код

private Cursor getData() 
{
    try
    {
        myDbHelper = new DatabaseHelper(this);
        SQLiteDatabase db = myDbHelper.getReadableDatabase();
        Cursor cursor = db.query("exhibitor", FROM, null, null, null,null, ORDER_BY);
        startManagingCursor(cursor);
        return cursor;
    }
    catch(SQLiteException e)
    {
        String err = e.toString();
        return null;
    }
}


Выдает ошибку, говоря1005 * но когда я проверяю базу данных экспонента нет.

Чего мне не хватает?

Ответы [ 9 ]

18 голосов
/ 09 марта 2011

Настройки -> Приложения -> Управление приложениями -> (Нажмите на приложение) -> Очистить данные

6 голосов
/ 02 ноября 2012

Всякий раз, когда вы создаете новую таблицу в существующей базе данных, таблица не создается, потому что функция OnCreate обработчика базы данных будет вызываться не каждый раз, а только при необходимости (например, база данных не инициирована).Если это не так, то ваша вновь созданная таблица на самом деле еще не создана.Очистите данные, чтобы заставить БД создавать себя.

5 голосов
/ 14 февраля 2011

Вы перенесли базу данных из папки активов в /data/data/YOUR_PACKAGE/databases/ на эмуляторе?

Это хороший подробный пост о перемещении базы данных в /data/data/YOUR_PACKAGE/databases/, если она не существует.

Здесь - еще одно краткое и простое решение.

3 голосов
/ 28 июля 2017

Очистить данные и удалить приложение с вашего устройства и переустановить приложение на устройстве ...

Settings -> Applications -> Manage Applications -> Your Application Name -> Clear data
1 голос
/ 02 ноября 2018

Просто очистка данных не работает для меня.

То, что сработало, было:

  • Удалить приложение
  • Перезапустить устройство или эмулятор
  • Отключить мгновенный запуск (не только основная группа, но и все индивидуальные настройки мгновенного запуска)
  • Сборка -> Чистый проект
  • Build -> Rebuild Project
1 голос
/ 14 февраля 2011

Использование SQLiteOpenHelper.onCreate() не создает новую базу данных при каждом запуске приложения, скорее, она создает базу данных, если она еще не существует.

Похоже, у вас может быть пустая база данных, созданная вашим помощником или для него (если базы вообще не было, я мог бы ожидать другого исключения), и ваша отдельная база данных, созданная за пределами Android. Похоже, вы и ваше приложение не ищите данные в одном месте.

0 голосов
/ 05 апреля 2019

Только что случилось со мной. Я точно не знаю, почему, но изменение атрибута DB_VERSION на большее число заставило его работать. Дело в том, что каждый раз, когда я меняю поля БД (атрибуты класса SQLiteDB), мне нужно изменить это число.

0 голосов
/ 28 февраля 2019

У меня просто была простая ошибка.

Причина:

enter image description here

Решение:

enter image description here

0 голосов
/ 05 августа 2014

случилось со мной, как только вы измените DATABASE_VERSION

, если ваш DATABASE_VERSION = 1, он увидит только три таблицы, если ваш DATABASE_VERSION = 2, то он увидит просто больше таблиц, но я действительно не знал, сколько

удачи

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