#え?table users has no column named name (code 1)??
sqliteデータベースを作成し、値を格納しようとしたときに発生した。
SQL文は間違ってないはずなのになぁ。
##エラーの意味
そもそもこのエラーは何を意味しているのか。
エラーコードを読むとわかるが、指定したカラム(列)が存在しませんよ。というエラーだ。
##主な原因:
このエラーが発生してからググりまくって調べたところ、主に以下の点が主な原因みたい。
-
SQL文のミス:
打ち間違いや文法ミスによるもの。 -
onCreate(SQLiteDatabase db) {}実行タイミング:
私がハマっていたのはこちら。
データベースが作成される際にonCreate()も実行される。
データベースが作成されている状態のまま、プログラムが走ると、onCreate()には処理がいきません。
そのため、onCreate()で使うSQL文を一生懸命直しても意味がありません。。。
解決するには、アプリをアンインストールするか、deleteDatabase("sample.db");でデータベースを削除します。
#おわりに
言われてみればそりゃそうだって感じですが、ぼーっとしていたら見落としてしまう。
基本的なところにこそ落とし穴があるのかなぁ。