我有一个类DatabaseHandler。我用以下代码覆盖了onCreate(SQLiteDatabase db)方法:
String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_SONG + "(" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
SONG_TITLE + " TEXT," + ARTIST_NAME + " TEXT," + GENRE + " TEXT," +
SONG_PATH + " TEXT" + ")";
db.execSQL(CREATE_TABLE);
但是我发现,每次打开模拟器时,都会有额外的项目附加到TABLE_SONG上,结果即使在sdcard中有6首歌曲,数据库仍显示454首歌曲。这迫使我放弃表,重新考虑重新创建它。但是现在我被困在找不到表或者没有创建表的位置。是不是应该在我创建此类的对象时每次调用onCreate()方法?
最佳答案
我同意waqas,请在下面找到示例代码
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME
+ ... ) ";
db.execSQL(CREATE_TABLE);}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if exists
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
编辑
onUpgrade()的使用
当您构造一个比打开的数据库版本新的SQLiteOpenHelper时,将调用该函数。做什么取决于新旧版本之间在数据库中所做的更改。不删除已更改的表的唯一情况是,更改所注意的不只是添加的列。然后,您可以使用ALTER TABLE语句将新列添加到表签名中。
关于android - 找不到表格Android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13123757/