前提・実現したいこと
Githubのコードを参考にしてSQLiteDatabaseを利用するプログラムを作ろうとしましたが
エミュレーターで実行中にボタンを押す操作をするとエラーが出てしまいます。
データベースに保存するコラムを増やすために自分で編集しました。
こちらのコードを元に書いています。
発生している問題・エラーメッセージ
E/SQLiteLog: (1) table supplement_table has no column named NUMBER_OF_CONTAINER E/SQLiteDatabase: Error inserting DAILY_SERVING=123 DAYS_IN_WEEK_YOU_USE=123 NUMBER_OF_CONTAINER=123 MONTHLY_EXPENSE=123 SERVING_PER_CONTAINER=123 DAYS_UNTIL_EXPIRE=123 EXPIRE_DATE=123 NAME=123 PRICE_OF_CONTAINER=123
該当のソースコード
lang
1MainActivity 2 3DatabaseHelper.java 4import android.content.ContentValues; 5import android.content.Context; 6import android.database.Cursor; 7import android.database.sqlite.SQLiteDatabase; 8import android.database.sqlite.SQLiteOpenHelper; 9 10public class DatabaseHelper extends SQLiteOpenHelper{ 11 12 public static final String DATABASE_NAME = "supplement.db"; 13 public static final String TABLE_NAME = "supplement_table"; 14 public static final String COL1 = "ID"; 15 public static final String COL2 = "NAME"; 16 public static final String COL3 = "DAILY_SERVING"; 17 public static final String COL4 = "DAYS_IN_WEEK_YOU_USE"; 18 public static final String COL5 = "SERVING_PER_CONTAINER"; 19 public static final String COL6 = "NUMBER_OF_CONTAINER"; 20 public static final String COL7 = "PRICE_OF_CONTAINER"; 21 public static final String COL8 = "MONTHLY_EXPENSE"; 22 public static final String COL9 = "DAYS_UNTIL_EXPIRE"; 23 public static final String COL10 = "EXPIRE_DATE"; 24 25 public DatabaseHelper(Context context) { 26 super(context, DATABASE_NAME, null, 1); 27 } 28 29 @Override 30 public void onCreate(SQLiteDatabase db) { 31 String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 32 " NAME TEXT, DAILY_SERVING TEXT, DAYS_IN_WEEK_YOU_USE TEXT, SERVING_PER_CONTAINER TEXT," + 33 " NUMBER_OF_CONTAINER TEXT, PRICE_OF_CONTAINER TEXT, MONTHLY_EXPENSE TEXT, " + 34 "DAYS_UNTIL_EXPIRE TEXT, EXPIRE_DATE TEXT)"; 35 36 db.execSQL(createTable); 37 38 } 39 40 @Override 41 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 42 db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME); 43 onCreate(db); 44 45 } 46 47 public boolean addData(String name, String daily_serving, String days_in_a_week_you_use, 48 String serving_per_container, String number_of_container, String price_of_container, 49 String monthly_expense, String days_until_expire, String expire_date){ 50 SQLiteDatabase db = this.getWritableDatabase(); 51 ContentValues contentValues = new ContentValues(); 52 contentValues.put(COL2,name); 53 contentValues.put(COL3,daily_serving); 54 contentValues.put(COL4,days_in_a_week_you_use); 55 contentValues.put(COL5,serving_per_container); 56 contentValues.put(COL6,number_of_container); 57 contentValues.put(COL7,price_of_container); 58 contentValues.put(COL8,monthly_expense); 59 contentValues.put(COL9,days_until_expire); 60 contentValues.put(COL10,expire_date); 61 62 long result = db.insert(TABLE_NAME, null, contentValues); 63 64 if(result == -1){ 65 return false; 66 }else { 67 return true; 68 } 69 } 70 71 public Cursor showData(){ 72 SQLiteDatabase db = this.getWritableDatabase(); 73 Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); 74 return data; 75 } 76 77 public boolean updateData(String id,String name, String daily_serving, String days_in_a_week_you_use, 78 String serving_per_container, String number_of_container, String price_of_container, 79 String monthly_expense, String days_until_expire, String expire_date){ 80 SQLiteDatabase db = this.getWritableDatabase(); 81 ContentValues contentValues = new ContentValues(); 82 contentValues.put(COL1, id); 83 contentValues.put(COL2,name); 84 contentValues.put(COL3,daily_serving); 85 contentValues.put(COL4,days_in_a_week_you_use); 86 contentValues.put(COL5,serving_per_container); 87 contentValues.put(COL6,number_of_container); 88 contentValues.put(COL7,price_of_container); 89 contentValues.put(COL8,monthly_expense); 90 contentValues.put(COL9,days_until_expire); 91 contentValues.put(COL10,expire_date); 92 db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id}); 93 return true; 94 } 95 96 public Integer deleteData(String id){ 97 SQLiteDatabase db = this.getWritableDatabase(); 98 return db.delete(TABLE_NAME, "ID = ?", new String[] {id}); 99 } 100 101} 102 103 104DatabaseHelper.java 105 106import android.content.ContentValues; 107import android.content.Context; 108import android.database.Cursor; 109import android.database.sqlite.SQLiteDatabase; 110import android.database.sqlite.SQLiteOpenHelper; 111 112public class DatabaseHelper extends SQLiteOpenHelper{ 113 114 public static final String DATABASE_NAME = "supplement.db"; 115 public static final String TABLE_NAME = "supplement_table"; 116 public static final String COL1 = "ID"; 117 public static final String COL2 = "NAME"; 118 public static final String COL3 = "DAILY_SERVING"; 119 public static final String COL4 = "DAYS_IN_WEEK_YOU_USE"; 120 public static final String COL5 = "SERVING_PER_CONTAINER"; 121 public static final String COL6 = "NUMBER_OF_CONTAINER"; 122 public static final String COL7 = "PRICE_OF_CONTAINER"; 123 public static final String COL8 = "MONTHLY_EXPENSE"; 124 public static final String COL9 = "DAYS_UNTIL_EXPIRE"; 125 public static final String COL10 = "EXPIRE_DATE"; 126 127 public DatabaseHelper(Context context) { 128 super(context, DATABASE_NAME, null, 1); 129 } 130 131 @Override 132 public void onCreate(SQLiteDatabase db) { 133 String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 134 " NAME TEXT, DAILY_SERVING TEXT, DAYS_IN_WEEK_YOU_USE TEXT, SERVING_PER_CONTAINER TEXT," + 135 " NUMBER_OF_CONTAINER TEXT, PRICE_OF_CONTAINER TEXT, MONTHLY_EXPENSE TEXT, " + 136 "DAYS_UNTIL_EXPIRE TEXT, EXPIRE_DATE TEXT)"; 137 138 db.execSQL(createTable); 139 140 } 141 142 @Override 143 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 144 db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME); 145 onCreate(db); 146 147 } 148 149 public boolean addData(String name, String daily_serving, String days_in_a_week_you_use, 150 String serving_per_container, String number_of_container, String price_of_container, 151 String monthly_expense, String days_until_expire, String expire_date){ 152 SQLiteDatabase db = this.getWritableDatabase(); 153 ContentValues contentValues = new ContentValues(); 154 contentValues.put(COL2,name); 155 contentValues.put(COL3,daily_serving); 156 contentValues.put(COL4,days_in_a_week_you_use); 157 contentValues.put(COL5,serving_per_container); 158 contentValues.put(COL6,number_of_container); 159 contentValues.put(COL7,price_of_container); 160 contentValues.put(COL8,monthly_expense); 161 contentValues.put(COL9,days_until_expire); 162 contentValues.put(COL10,expire_date); 163 164 long result = db.insert(TABLE_NAME, null, contentValues); 165 166 if(result == -1){ 167 return false; 168 }else { 169 return true; 170 } 171 } 172 173 public Cursor showData(){ 174 SQLiteDatabase db = this.getWritableDatabase(); 175 Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); 176 return data; 177 } 178 179 public boolean updateData(String id,String name, String daily_serving, String days_in_a_week_you_use, 180 String serving_per_container, String number_of_container, String price_of_container, 181 String monthly_expense, String days_until_expire, String expire_date){ 182 SQLiteDatabase db = this.getWritableDatabase(); 183 ContentValues contentValues = new ContentValues(); 184 contentValues.put(COL1, id); 185 contentValues.put(COL2,name); 186 contentValues.put(COL3,daily_serving); 187 contentValues.put(COL4,days_in_a_week_you_use); 188 contentValues.put(COL5,serving_per_container); 189 contentValues.put(COL6,number_of_container); 190 contentValues.put(COL7,price_of_container); 191 contentValues.put(COL8,monthly_expense); 192 contentValues.put(COL9,days_until_expire); 193 contentValues.put(COL10,expire_date); 194 db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id}); 195 return true; 196 } 197 198 public Integer deleteData(String id){ 199 SQLiteDatabase db = this.getWritableDatabase(); 200 return db.delete(TABLE_NAME, "ID = ?", new String[] {id}); 201 } 202 203} 204 205
試したこと
プロジェクトのクリーン等
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー