我正在尝试将一组字符串变量存储到SQLite数据库中,直到我添加了另外两个名为“Weight”和“Goal”的列。不幸的是,每当我尝试编译它现在它停止工作,说明
04-21 20:19:11.675 2000-2000/com.example.wolfe_000.final_final_zeno E/SQLiteLog﹕ (1) table Registered_Info has no column named Goal
正如我在添加重量和目标之前说的那样,这里是数据库操作的代码:
公共类DatabaseOperations扩展了SQLiteOpenHelper {
public static int database_version = 1;
public String CREATE_QUERY = "CREATE TABLE "+TableData.TableInfo.TABLE_NAME + "("+TableData.TableInfo.USER_NAME+" TEXT,"+TableData.TableInfo.USER_PASS+" TEXT,"+TableData.TableInfo.USER_EMAIL+" TEXT,"+ TableData.TableInfo.USER_WEIGHT+" TEXT,"+ TableData.TableInfo.USER_GOAL+" TEXT );";
public DatabaseOperations(Context context) {
super(context, TableData.TableInfo.DATABASE_NAME, null, database_version);
Log.d("Database Operations", "Database Created");
}
@Override
public void onCreate(SQLiteDatabase sdb) {
sdb.execSQL(CREATE_QUERY);
Log.d("Database Operations", "Table Created");
sdb.close();
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
public void putInformation(DatabaseOperations dop, String name, String pass, String email, String weight, String goal) {
SQLiteDatabase SQ = dop.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(TableData.TableInfo.USER_NAME, name);
cv.put(TableData.TableInfo.USER_PASS, pass);
cv.put(TableData.TableInfo.USER_EMAIL, email);
cv.put(TableData.TableInfo.USER_WEIGHT,weight);
cv.put(TableData.TableInfo.USER_GOAL,goal);
long k = SQ.insert(TableData.TableInfo.TABLE_NAME, null, cv);
Log.d("Database Operations", "One Row Inserted");
SQ.close();
}
public Cursor getInformation(DatabaseOperations dop){
SQLiteDatabase SQ = dop.getReadableDatabase();
String[] columns = {TableData.TableInfo.USER_NAME, TableData.TableInfo.USER_PASS, TableData.TableInfo.USER_EMAIL, TableData.TableInfo.USER_WEIGHT, TableData.TableInfo.USER_GOAL};
Cursor CR = SQ.query(TableData.TableInfo.TABLE_NAME, columns, null, null, null, null, null);
return CR;
}
答案 0 :(得分:0)
更改database_version = 2;或从设备中删除应用程序。
然后尝试
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(NkSQLiteOpenHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}