私のアンドロイドアプリでSQLlite DBに問題があります。私は以下のようにDatabaseHelperクラスを持っています。そして、私はアクティビティで簡単な挿入を呼び出しています。しかし、私は例外テーブルtvSeriesを取得しているlast_episode_idという名前の列がありません。私はそれがテーブルを作成していないように見える?しかし、私は問題を見ることができません。SQLLiteオープンヘルパー - カラムdoes not exist
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "tvSeries";
private static final String TVSERIE_TABLE_NAME = "tvSeries";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_LAST_ID = "last_episode_id";
private static final String KEY_LAST_NAME = "last_episode_name";
private static final String TVSERIE_TABLE_CREATE =
"CREATE TABLE " + TVSERIE_TABLE_NAME + " (" +
KEY_ID + "INTEGER PRIMARY KEY, " +
KEY_LAST_ID + "INTEGER, " +
KEY_LAST_NAME + "TEXT, " +
KEY_NAME + " TEXT);";
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TVSERIE_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// on upgrade drop older tables
db.execSQL("DROP TABLE IF EXISTS " + TVSERIE_TABLE_NAME);
// create new tables
onCreate(db);
}
public long createRecord(TvSerie serie){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ID, serie.getId());
values.put(KEY_NAME, serie.getName());
values.put(KEY_LAST_ID, serie.getLastEpisodeId());
values.put(KEY_LAST_NAME, serie.getLastEpisodeName());
// insert row
long id = db.insert(TVSERIE_TABLE_NAME, null, values);
return id;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
TvSerie tvSerieTest = new TvSerie();
tvSerieTest.setName("Test");
tvSerieTest.setId(1);
DatabaseHelper db ;
db = new DatabaseHelper(getApplicationContext());
db.getWritableDatabase();
db.createRecord(tvSerieTest);
}
アプリをアンインストールするか、アプリの[設定]に移動してデータを消去します。次に、アプリをもう一度実行してみてください。 – CommonsWare