У меня есть приложение для Android, которому необходимо проверить, есть ли уже запись в базе данных, а если нет, обработать некоторые вещи и в конечном итоге вставить ее и просто прочитать данные из базы данных, если данные действительно существуют. Я использую подкласс SQLiteOpenHelper для создания и получения перезаписываемого экземпляра SQLiteDatabase, который, как я думал, автоматически позаботился о создании таблицы, если она еще не существует (поскольку код для этого находится в onCreate (... ) метод).
Однако, когда таблица еще НЕ существует, а первый метод, запущенный для объекта SQLiteDatabase, который у меня есть, - это вызов query (...), мой logcat показывает ошибку «I / Database (26434): sqlite return: error code = 1, msg = no such table: appdata ", и конечно же, таблица appdata не создается.
Есть идеи почему?
Я ищу любой метод, чтобы проверить, существует ли таблица (потому что, если это не так, данные определенно не в ней, и мне не нужно читать ее, пока я не напишу в нее, что, похоже, создает таблицу правильно), или способ убедиться, что он создан и просто пуст, вовремя для этого первого вызова query (...)
ИЗМЕНИТЬ
Это было опубликовано после двух ответов ниже:
Думаю, я нашел проблему. Я по какой-то причине решил, что для каждой таблицы должен был создаваться отдельный SQLiteOpenHelper, даже если оба обращаются к одному и тому же файлу базы данных. Я думаю, что рефакторинг этого кода для использования только одного OpenHelper и создание обеих таблиц внутри onCreate может сработать лучше ...