2009-06-01 4 views
16

Можно создать дубликат:
Android Sqlite - “No Such Table” ErrorSQLite исключение: нет такой таблицы ошибка

Мы пытаемся разработать приложение на Android. Мы используем базу данных SQLite и по телефону получаем

SQLiteException: нет такой таблицы.

Он отлично работает на симуляторе.

Может ли кто-нибудь предоставить какие-либо данные по этому вопросу?

+1

Вы запустить свой код на чистый эмуляторе? Вы также подтвердили, что код, создающий таблицу, выполняется? Следующим шагом было бы получить sqlite db от emualtor и посмотреть на него с помощью браузера базы данных sqlite, чтобы проверить, действительно ли таблица существует. – hacken

+0

Привет! Я уже создал базу данных и просто использовал уже созданную базу данных, поэтому таблица уже создана. Я просто делаю SELECT в существующей таблице. Я беспокоюсь, что он отлично работает на симуляторе, а не на телефоне. –

+0

Вы проверили, что таблица есть? Гораздо более вероятно, что таблицы нет на телефоне, чем нет. Снова очень просто проверить, правильно ли вы создали БД. – hacken

ответ

14

Если вы не укажете имя файла базы данных правильно, я верю, что оно возвращается к созданию пустой базы данных. Обычно это причина «таблицы не найдена». Проверьте свой путь и имя файла базы данных.

+1

Я использовал, например: data @ base-db, поэтому db был не создается.После того, как я удалил @, как database-db, он работает для меня .... :) спасибо за подсказку ... – PrinceMidha

2

Некоторые люди смогли решить проблему, используя указанные шаги: here. Мне кажется, что эта проблема существует в некоторых версиях Android 2.2. Я включил это изменение в свой код, хотя я все еще ищу бета-тестеры, чтобы посмотреть, действительно ли он работает.

6

Я столкнулся с другим вкусом той же проблемы.

Я получаю no such table Ошибка при попытке вставить.

Перед установкой, код звала

mDb = mDbHelper.getWritableDatabase(); 

getWritableDatabase(), когда называется первый раз будет вызывать onCreate()

Я имел мой SQL запрос, чтобы создать таблицу в этой OnCreate метод

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 

Так что для меня случилось то, что db был успешно создан, когда приложение было выполнено в первый раз bu t нет таблицы из-за некоторых других ошибок. Позже, когда приложение запускается, onCreate() никогда не вызывается, поскольку db уже существует и, таким образом, таблица не создана, поэтому все дальнейшие SQL-команды не удались.

Так что я переехал создание таблицы из onCreate(), и теперь его работой

+1

тогда как вы нашли db вне oncreate? –

Смежные вопросы