2014-09-27 99 views
0

我在差异文件中创建2个表(扩展SQLiteOpenHelper)。他们都有相同的数据库名称。当我只有一张桌子时,它工作得很好。但是当我尝试使用他们两个。我得到这个错误如何解决SQLiteException:2表数据库没有这样的表?

了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); 
} 

第2台databaseHelper类的实现方式为一日一相同的部分。我只更改表名和列名。所以我该怎么做?

+0

你能更明确吗?就像你为什么要访问每一个旁边的作品,但访问他们都行不通。我真的不明白你做了什么导致你这样做。 – 2014-09-27 19:46:50

+0

为什么你不用另一个查询在onCreate中创建第二个表本身。 – Chitrang 2014-09-27 21:13:30

+0

什么行导致SQLiteException?它何时执行? – 2014-09-28 00:21:27

回答

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)");

相关问题