3 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
您必須先增加數(shù)據(jù)庫版本,然后再更改 sqlite 的 On-upgrade 方法。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion > oldVersion){
db.execSQL("DROP TABLE IF EXISTS " +......);
db.execSQL("CREATE TABLE IF NOT EXISTS " +......);
insertColumnIfNotAvailableinTable(SQLiteDatabase db, String tableName, String columnName, String columnType);
}
}

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
錯(cuò)誤很明顯:
...
.sqlite.SQLiteException: table userInfo has no column named userInfo (code 1):
, while compiling: INSERT INTO userInfo(password,userInfo) VALUES (?,?) at
...
當(dāng)您調(diào)用該方法時(shí)
public boolean addInfo( ContentValues values )
您將作為內(nèi)容值傳遞,即與表同名的值。你必須檢查兩件事:
您在哪里使用
UserProfile.Users.TABLE_NAME
(我認(rèn)為它的值是 userInfo檢查您傳遞給
addInfo
方法使用的內(nèi)容值的內(nèi)容。
希望能幫助到你。

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您在創(chuàng)建表后嘗試向該表添加新行,請(qǐng)嘗試刪除該表并重新創(chuàng)建它。
去除
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
在此之后,您可以再次重新創(chuàng)建表
添加回答
舉報(bào)