【发布时间】:2021-11-12 20:27:48
【问题描述】:
我有一个运行良好的现有数据库,我需要在其中添加一些更改。这些更改后数据库无法正常工作。我应该如何更改数据库以保留现有的并添加新的更改?任何帮助表示赞赏。这是原始数据库
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "DATABASE_NAME.db";
public static final String TABLE_NAME = "POSITION_TABLE";
private static final String _ID = "_id";
private static final String RADIO_BUTTON_POSITION = "radio_button_position";
public DBHelper(@Nullable Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String create_table = "CREATE TABLE " + TABLE_NAME + "( "
+ "ID INTEGER PRIMARY KEY ,"
+ RADIO_BUTTON_POSITION + " TEXT NOT NULL, "
+ _ID + " TEXT NOT NULL)";
db.execSQL(create_table);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop Table if exists " + TABLE_NAME);
onCreate(db);
}
}
public boolean updateButtonPosition(String _id,String radio_button_position){
SQLiteDatabase database = this.getWritableDatabase();
String selection = "_id = ?";
ContentValues contentValues = new ContentValues();
contentValues.put(_ID,_id);
contentValues.put(RADIO_BUTTON_POSITION,radio_button_position);
long result = database.update(TABLE_NAME , contentValues , _ID + " =? " ,
new String[]{_id});
if (result == -1){
return false;
} else {
return true;
}
}
public int readButtonPosition(String _id,String radio_button_position)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT " + RADIO_BUTTON_POSITION + " FROM "
+TABLE_NAME+" WHERE " + _ID +" =? " , new String[] {String.valueOf(_id)});
if(cursor.moveToFirst()){
return cursor.getInt(cursor.getColumnIndex(RADIO_BUTTON_POSITION));
} else {
return 0;
}
}
这是我要在上面的db中添加的新内容。
private static final String LAST_NO = "LAST_NO";
public boolean updateNumber(String _id,int last_no){
SQLiteDatabase database = this.getWritableDatabase();
String selection = "_id = ?";
ContentValues contentValues = new ContentValues();
contentValues.put(_ID,_id);
contentValues.put(LAST_NO,last_no);
long result = database.update(TABLE_NAME , contentValues , _ID + " =? " ,
new String[]{_id});
if (result == -1){
return false;
} else {
return true;
}
}
【问题讨论】:
-
尝试卸载并重新安装应用程序。
-
我做到了,但仍然没有帮助。
-
尝试在清单文件的应用标签中添加
tools:replace="android:allowBackup"和android:allowBackup="false"