Обновите SQLiteDatabase Android - PullRequest
0 голосов
/ 27 января 2012

Я пишу приложение, которое использует SQLite. Сначала в моей базе данных была только одна таблица с именем products. Теперь я хочу добавить еще одну таблицу с именем favouriteproduct_table. Я написал команду db.exec("create table fav_product") в методе onCreate, но мое приложение дает сбой, сказав, что таблица для Product_fav.

не найдена.

Это мой код перед добавлением favourite_product_table.

   private static class OpenHelper extends SQLiteOpenHelper 
   {

      OpenHelper(Context context) 
      {
         super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }

      @Override
      public void onCreate(SQLiteDatabase db) 
      {

          db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, systemSerID TEXT, systemSerName TEXT, productID TEXT, productName TEXT, productDesc TEXT, productType TEXT, batchID TEXT, minVal TEXT, maxVal TEXT)");

      }

      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
      {
         Log.w("Example", "Upgrading database, this will drop tables and recreate.");
         db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
         onCreate(db);
      }

   }

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

 private static class OpenHelper extends SQLiteOpenHelper 
   {

      OpenHelper(Context context) 
      {
         super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }

      @Override
      public void onCreate(SQLiteDatabase db) 
      {

          db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, systemSerID TEXT, systemSerName TEXT, productID TEXT, productName TEXT, productDesc TEXT, productType TEXT, batchID TEXT, minVal TEXT, maxVal TEXT)");
          db.execSQL("CREATE TABLE " + TABLE_TOPUP_FAVOURITE + "(id INTEGER PRIMARY KEY, systemSerID TEXT, systemSerName TEXT, productID TEXT, productName TEXT, productDesc TEXT, productType TEXT, batchID TEXT, minVal TEXT, maxVal TEXT, imageid TEXT)");
      }

      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
      {
         Log.w("Example", "Upgrading database, this will drop tables and recreate.");
         db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
         onCreate(db);
      }

   }

1 Ответ

1 голос
/ 27 января 2012

Проверьте свой вопрос, что вы задали

Теперь я хочу добавить еще одну таблицу с именем favouriteproduct_table

, а затем

db.exec ("создать таблицу fav_product ")

и наконец

мое приложение падает, сообщая, что таблица для Product_fav

не найдена

Теперь посмотрим, в чем ошибка.

В трех ваших предложениях таблицы имеют разные имена.

У вас есть все эти таблицы ( favouriteproduct_table , fav_product , Product_fav ), отличающиеся друг от друга?

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