【发布时间】:2011-04-02 16:49:37
【问题描述】:
我正在创建一个 android 应用程序,其中涉及创建一个 Sqlite 数据库,并在应用程序再次运行时打开。当应用程序第一次运行时,数据库可以正常打开。
再次运行应用程序并打开数据库时,我收到 no such table 错误,尽管这些表是在应用程序第一次运行时创建的。我也知道数据库存在并且正在第二次打开(运行 onOpen() 方法而不是 onCreate())。
我已经从下面的代码中删除了创建表、填充等。我想知道我是否遗漏了一些明显的东西?
我使用的代码来自我多年前使用的教程:
public class DatabaseCreate {
private final static String DATABASE_NAME = "DBname";
private final static int DATABASE_VERSION = 1;
private DatabaseHelper mDbHelper;
Cursor mCursor;
SQLiteDatabase myDB;
Context mCtx;
static SQLiteDatabase db_Read = null;
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onOpen(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
@Override
public void onCreate(SQLiteDatabase db) {
}
}
public DatabaseCreate (Context ctx) {
this.mCtx = ctx;
}
public DatabaseCreate open(){
mDbHelper = new DatabaseHelper(mCtx);
myDB = mDbHelper.getWritableDatabase();
return this;
}
任何帮助都会很棒,谢谢。
【问题讨论】: