0

SQLite を使用するアプリケーションを作成しています。最初、私のデータベースには という名前のテーブルが 1 つしかありませんでしproductsた。という名前のテーブルをもう 1 つ追加しますfavouriteproduct_tabledb.exec("create table fav_product")メソッドにコマンドを書きましたonCreateが、 のテーブルが見つからないと言ってアプリがクラッシュしますProduct_fav

これは、favorite_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);
      }

   }
4

1 に答える 1

1

質問内容を確認してください

ここで、 favouriteproduct_tableというテーブルをもう 1 つ追加します。

その後

db.exec("テーブルfav_productを作成")

そしてついに

Product_favのテーブルが見つからないと言ってアプリがクラッシュする

エラーが何であるかを確認してください。

あなたのセンテンステーブルのうち3つは異なる名前です。

これらすべてのテーブル ( favouriteproduct_tablefav_productProduct_fav ) が互いに異なっていますか?

于 2012-01-27T08:40:55.720 に答える