Java 升级sqliteandroid数据库
我正在编写使用SQLite的应用程序。起初,我的数据库只有一个名为Java 升级sqliteandroid数据库,java,android,sqlite,sqliteopenhelper,Java,Android,Sqlite,Sqliteopenhelper,我正在编写使用SQLite的应用程序。起初,我的数据库只有一个名为products的表。现在我想再添加一个名为favoriteProduct\u table的表。我在onCreate方法中编写了db.exec(“创建表fav\u产品”)命令,但是我的应用程序崩溃了,说找不到product\u fav的表 这是我在添加收藏夹产品表之前的代码 private static class OpenHelper extends SQLiteOpenHelper { OpenHe
products
的表。现在我想再添加一个名为favoriteProduct\u table
的表。我在onCreate
方法中编写了db.exec(“创建表fav\u产品”)
命令,但是我的应用程序崩溃了,说找不到product\u fav
的表
这是我在添加收藏夹产品表之前的代码
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);
}
}
检查你的问题你问了什么 现在我想再添加一个名为FavoriteProduct\u table的表 然后 db.exec(“创建表fav_产品”) 最后 我的应用程序崩溃,说找不到产品\u fav的表 现在看看是什么错误 在你的三个句子表中有不同的名字 是否所有这些表(FavoriteProduct\u表,fav\u产品,product\u fav)彼此不同?考虑使用“\u id”而不是“id”作为主键,许多Android适配器更希望表实现
BaseColumns
中使用的列,而不是使用任意的pkey名称。