なぜ昨日このエラーが発生したのかという質問をいくつかのコードで解決しようとしていました:
java.lang.IllegalArgumentException: column '_id' does not exist
特に必要のないコードがたくさんあったので、どこが間違っているのかを理解しやすくするために、多くのコードを取り除きました。しかし、本質的にこれは私のスキーマです:
database.execSQL("CREATE TABLE events (" +
"_id INTEGER PRIMARY KEY, event_name TEXT" +
")");
お分かりのように、見た目は問題ありません。私が読むのを忘れていない限り、それは明らかにそこにあります。しかし、その後、エラーの原因がどこにあるのかを突き止めました。または、少なくともこれが理由であると確信しています。カーソルを取得するこのコード:
public Cursor getEventsName() {
return database.rawQuery( "SELECT event_name FROM events", null);
}
Androidによると、これがエラーです。これに変更すると:
public Cursor getEventsName() {
return database.rawQuery( "SELECT * FROM events", null);
}
すべてが桃です。前者だとクラッシュします。これがなぜなのかについての理由は何でも。rawQuery() でそれができると思いました。where句を含めていない限り、そうではありません。どんな助けでも大歓迎です。