2016-05-02 10 views
0

私のアンドロイドアプリで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); 
} 
+0

アプリをアンインストールするか、アプリの[設定]に移動してデータを消去します。次に、アプリをもう一度実行してみてください。 – CommonsWare

答えて

3
KEY_ID + "INTEGER PRIMARY KEY, " + 
KEY_LAST_ID + "INTEGER, " + 
KEY_LAST_NAME + "TEXT, " + 

あなたは、列名とその型の間に空白が必要です。

これを修正した後、make sure the database schema gets updated

+0

ああ、それは速かった、それは問題を解決したので感謝! – Pogasta

関連する問題