こんにちはmorimoriです。
Androidアプリ開発をしていてデータベースINSERT時にちょっとはまったので、メモしておきます。
状況
SQLiteDatabaseを使用してDBにINSERTしようとしたのですが、データが空っぽで登録されていませんでした。エラーが出ているのかと思ってtry〜catchを入れてみましたがエラーのキャッチはできませんでした。戻り値を確認したところ-1となっているため間違いなく登録はできていない。
原因
単純なミスなのですがSQLのCREATE文が次のようになっていました。
user_pointの後に間違えてカンマが入っています。SQLiteだと型が宣言されていない場合、デフォルトではTEXTになるようです。(そのためINTERGERもTEXT型のカラムとして作成されています。)
不要なカンマを削除して実行してみたところ無事にデータが登録できました。
SQLiteのツールで直接SQLのINSERTを実行してみても登録できるのに、なぜAndroid Studio上では登録できないのか謎ですが、これで何時間か無駄にしたので解決できて良かったです。
まとめ
実際にアプリを作りながらandroidのお作法を勉強していますが、ところどころつまずくところがあって難しいですね。