質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1252閲覧

androidアプリでSQLiteDatabaseに情報を書きこみ失敗。

tk2635842

総合スコア8

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/07/28 20:32

編集2018/07/29 14:07

前提・実現したいこと

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2018/07/28 20:46

SQLiteを使っているなら、タグ[SQLite]も追加した方がコメントが付き易いです。
tk2635842

2018/07/28 20:48

ご指摘ありがとうございます。
tk2635842

2018/07/29 11:15

便利な方法があるのですね。教えてくださってありがとうございます。
Orlofsky

2018/07/29 11:19

直し方が間違っています。
tk2635842

2018/07/29 11:25

失礼しました。修正しました。
guest

回答1

0

自己解決

こちらを参考にして、コラムの名前の前後のスペースを調整したところ解決に至りました。

投稿2018/07/29 15:10

tk2635842

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問