我正在尝试在我的应用程序中添加第二个表,但我没有运气。这两个表是他们自己的类,是单身人士。我在onUpgrade方法中传入数据库的引用,并再次作为实例变量传递。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
transTable = TransactionTable.getInstance(db);
sysTable = SystemTable.getInstance(db);
onCreate( db );
transTable.updateTable();
sysTable.updateTable();
}
onCreate方法只调用所有表中的create方法。
@Override
public void onCreate(SQLiteDatabase db) {
transTable.createTable();
sysTable.createTable();
}
第二个表sysTable在执行以下create语句时不会抛出异常。
public void createTable() {
db.rawQuery("CREATE TABLE IF NOT EXISTS " + tableName + " ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + lastUsed
+ " INTEGER, " + balance + " INTEGER, " + accountName
+ " TEXT, UNIQUE ( " + accountName + " ) )", null);
}
但是,当我运行一个简单的查询,如下所示:
db.rawQuery("select * from " + tableName, null);
我收到错误说明
android.database.sqlite.SQLiteException: no such table: system_t: ,
while compiling: select * from system_t
第一个表被删除或创建没有问题。有什么想法吗?
答案 0 :(得分:0)
更改createTable方法的代码:
db.rawQuery
到
db.execSQL()