前提・実現したいこと
アンドロイドスタジオで入力したものをDBに保存して表示するシステムを作っています。
このコードはもともと他の方がプログラムしたコードを参考にして書きました。
それに、自分がテーブルにTODO1NAMEという名前の新しい列を追加してみたところ、以下のようなエラーが表示されました。
45行目で不具合が起きているみたいです。
発生している問題・エラーメッセージ
E/SQLiteLog: (1) table lv1_data has no column named TODO1NAME
該当のソースコード
Java
package com.example.adaptertest; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; //TODO todoテストの変更 public class DBHelper_1 extends SQLiteOpenHelper { public static final String DATABASE_NAME = "lv1.db"; public static final String TABLE_NAME = "lv1_data"; //public static final String COL1 = "ID"; public static final String COL2 = "FIRSTNAME"; public static final String COL3 = "LASTNAME"; public static final String COL4 = "TODO1NAME"; public DBHelper_1(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + " FIRSTNAME TEXT, LASTNAME TEXT, TODO1NAME TEXT)"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } //データの追加処理 public boolean addData(String tName, String dName,String todo1Name) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL2, tName); contentValues.put(COL3, dName); contentValues.put(COL4, todo1Name); long result = db.insert(TABLE_NAME, null, contentValues);//この行で不具合が起きているようです //日付が正しく挿入されていない場合は-1が返されます if (result == -1) { return false; } else { return true; } } //1週間のクエリを繰り返す public Cursor getListContents() { SQLiteDatabase db = this.getWritableDatabase(); Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); return data; } }
補足情報(FW/ツールのバージョンなど)
Gradleバージョン:7.0.2
まだ回答がついていません
会員登録して回答してみよう