我的問題與
即資料庫已創建,表已創建。
再次運行應用程式然后完全相同。
以下是修改后的 TheOneAndOnlyDBHelper 以引入第 3 個表:-
class TheOneAndOnlyDBHelper extends SQLiteOpenHelper {
/* Note 2 table names */
private static final String EMPLOYEE_TABLE = "employee";
private static final String EXPENSE_TABLE = "expense";
private static final String ANOTHER_TABLE = "another"; /* ADDED for version 2 */
TheOneAndOnlyDBHelper(Context context) {
super(context,Constants.DB_NAME,null,Constants.DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query="CREATE TABLE " EMPLOYEE_TABLE " (" Constants.id " INTEGER PRIMARY KEY," Constants.firstName " TEXT, " Constants.lastName " TEXT," Constants.address " TEXT,"
Constants.contactNumber " INTEGER," Constants.jobStatus " TEXT," Constants.monthlyIncome " INTEGER)";
sqLiteDatabase.execSQL(query);
query="CREATE TABLE " EXPENSE_TABLE " (" Constants.id " INTEGER PRIMARY KEY," Constants.productName " TEXT, " Constants.productPrice " TEXT," Constants.productVersion " TEXT,"
Constants.productPurchaseDate " TEXT," Constants.productPurchaseTime " TEXT," Constants.productSerial " TEXT," Constants.quantityOfProduct " TEXT)";
sqLiteDatabase.execSQL(query);
/* NEEDED for new installs of the App which is now at Version 2 */
query = "CREATE TABLE IF NOT EXISTS " ANOTHER_TABLE "(" Constants.id " INTEGER PRIMARY KEY," Constants.other " TEXT );";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
/* ADDED for Version 2 */
if (i==1 && i1==2) {
String query = "CREATE TABLE IF NOT EXISTS " ANOTHER_TABLE "(" Constants.id " INTEGER PRIMARY KEY," Constants.other " TEXT );";
sqLiteDatabase.execSQL(query);
}
}
}
請注意,版本從 1 增加到 2:-
class Constants {
public static final int DB_VERSION = 2; /* CHANGED FROM 1 to 2 */
....
當應用程式重新運行時,版本已從 1 更改為 2,然后onUpgrade呼叫該方法并按以下方式創建第三個表:-

如果應用程式被卸載然后重新運行(就像一個新人安裝了新版本的應用程式),那么現在在onCreate方法中創建了所有三個表(相同的螢屏截圖)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/511636.html
