下記のようにセーブデータを管理しているのですが新しくコメント化してある名前の要素を追加したい場合DB_VERSIONをそのままにすると反映されず、DB_VERSIONをあげるとほかのデータも初期化されてしまうと思うのですが、データを保持したまま要素を追加することはできないのでしょうか?
よろしくお願いします。
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class SQLMyOpenHelper extends SQLiteOpenHelper { public SQLMyOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } public static final String DB_NAME = "SaveData.db"; public static final int DB_VERSION = 1; public static final String CREATE_TABLE = "create table " + SQLMyContract.SaveData.TABLE_NAME + "(" + SQLMyContract.SaveData._ID + " integer primary key autoincrement," + //SQLMyContract.SaveData.MY_NAME+ " text," + SQLMyContract.SaveData.MY_HP + " integer," + SQLMyContract.SaveData.MY_MP + " integer," + SQLMyContract.SaveData.MY_STR + " integer," + SQLMyContract.SaveData.MY_DEF + " integer," + SQLMyContract.SaveData.MY_AGI + " integer," + SQLMyContract.SaveData.MY_INT + " integer)"; public static final String INIT_TABLE = "insert into " + SQLMyContract.SaveData.TABLE_NAME + "(" + //SQLMyContract.SaveData.MY_NAME + "," + SQLMyContract.SaveData.MY_HP + "," + SQLMyContract.SaveData.MY_MP + "," + SQLMyContract.SaveData.MY_STR + "," + SQLMyContract.SaveData.MY_DEF + "," + SQLMyContract.SaveData.MY_AGI + "," + SQLMyContract.SaveData.MY_INT + ") values " + "(/*'名前',*/5,5,0,0,0,0)"; public static final String DROP_TABLE = "drop table if exists " + SQLMyContract.SaveData.TABLE_NAME; @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); db.execSQL(INIT_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(DROP_TABLE); onCreate(db); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/23 11:55