ぬるぽ

ゆるくプログラミングなどを語っていくブログ

【Android】SQLiteDatabaseでSQLのINSERTがエラーにならないのにデータが登録されていない問題

こんにちはmorimoriです。

Androidアプリ開発をしていてデータベースINSERT時にちょっとはまったので、メモしておきます。

状況

SQLiteDatabaseを使用してDBにINSERTしようとしたのですが、データが空っぽで登録されていませんでした。エラーが出ているのかと思ってtry〜catchを入れてみましたがエラーのキャッチはできませんでした。戻り値を確認したところ-1となっているため間違いなく登録はできていない。

f:id:nooootion:20180513195811p:plain

原因

単純なミスなのですがSQLのCREATE文が次のようになっていました。

f:id:nooootion:20180513200016p:plain

user_pointの後に間違えてカンマが入っています。SQLiteだと型が宣言されていない場合、デフォルトではTEXTになるようです。(そのためINTERGERもTEXT型のカラムとして作成されています。)

不要なカンマを削除して実行してみたところ無事にデータが登録できました。

SQLiteのツールで直接SQLのINSERTを実行してみても登録できるのに、なぜAndroid Studio上では登録できないのか謎ですが、これで何時間か無駄にしたので解決できて良かったです。

まとめ

実際にアプリを作りながらandroidのお作法を勉強していますが、ところどころつまずくところがあって難しいですね。