我用open()方法构建了一个数据库助手类,并用oncreate()重写了扩展的sqlite助手。(如下所示)。尽管如此,我还是得到了“sqliteexception,no such table”错误。我不明白,为什么openhelper没有帮助呢?
public void open() {
try{
db = openHelper.getWritableDatabase();
} catch (SQLiteException e) {
db = openHelper.getReadableDatabase();
}
}
//other stuff
public static final String database_create = "create table " + database_table + " (" + primary_key + " integer primary key autoincrement, "
+ company_column + " text not null, " + product_column + " text not null);";
@Override
public void onCreate(SQLiteDatabase _db) {
_db.execSQL(database_create);
}
下面的代码是为了临时插入一个条目,因为由于其他原因,数据库不能为空。它看起来执行得很完美,但是后面的最后一段代码抛出了错误
CompanyAndProductDatabaseAdapter cpdAdapter = new CompanyAndProductDatabaseAdapter(this);
cpdAdapter.open();
errorguard = cpdAdapter.insertPair("Loading", "...");
cpdAdapter.close();
//other stuff
cpdAdapter.open();
Cursor cursor = cpdAdapter.getAllPairsCursor(); //error here
cursor.requery();
startManagingCursor(cursor);
最佳答案
我不知道你为什么要实现一个open
-方法,而且database_create
也不是它应该是的。
我假设第一个代码是CompanyAndProductDatabaseAdapter
的一部分。
请看这里:
Android - Sqlite database method undefined fot type
这几乎就是用inhertedSQLiteOpenHelper
创建/获取数据库所需要的全部。