如何修复SQLiteException:2表数据库没有这样的表?

时间:2014-09-27 19:02:59

标签: android database sqlite

我在差异文件中创建了2个表(扩展了SQLiteOpenHelper)。他们两个都有相同的数据库名称。当我只有一个表时,它运行良好。但是当我尝试使用它们时。我收到了这个错误

  

java.lang.RuntimeException:无法启动活动
       android.database.sqlite.SQLiteException:没有这样的表:wish_table(代码1):,同时编译:SELECT * FROM wish_table

这是我的第一个表databaseHelper类

的一部分
public class Wishlist_DBHelper  extends SQLiteOpenHelper {

private SQLiteDatabase sqLiteDatabase;

public Wishlist_DBHelper(Context context) {
    super(context, WishList.DATABASE_NAME, null, WishList.DATABASE_VERSION);
}

// Wishlist
public static final String TABLE_WISHLIST = "wish_table";
public static final String WISHLIST_ID    = "_id";
public static final String WISHLIST_GOAL  = "goal";
public static final String WISHLIST_TARGET= "target";

@Override
public void onCreate(SQLiteDatabase db) {


    String CREATE_WISHLIST_TABLE = "create table "
            + TABLE_WISHLIST        + "("
            + WISHLIST_ID           + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + WISHLIST_GOAL         + " TEXT NOT NULL,"
            + WISHLIST_TARGET       + " TEXT NOT NULL);";

    // create  table
    db.execSQL(CREATE_WISHLIST_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS " + wish_table);
    onCreate(db);
}

第二个表databaseHelper类的实现方式与第一个类相同。我只更改表名和列名。那么,我该怎么办?

1 个答案:

答案 0 :(得分:0)

它可能有所不同';' ,我不确定但值得尝试db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_WISHLIST + " ( " + WISHLIST_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + WISHLIST_GOAL + " TEXT NOT NULL," + WISHLIST_TARGET + " TEXT NOT NULL)");