2012-03-11 64 views
0

我試圖將第二個表格添加到我的應用程序,但我沒有任何運氣。這兩個表是他們自己的類,是單身人士。我在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

變化CreateTable方法的代碼:

db.rawQuery 

db.execSQL() 
+1

Aaahh人!所有的東西......感謝大貓。 – DroidT 2012-03-11 13:15:04