重複した質問についてすぐにフラグを立てないでください。正しくフォーマットされた SQL クエリがあるため、私の問題は異なります。
public static final String TABLE_NAME = "log";
public static final String COLUMN_ID = "_id";
public static final String LOG_TEXT = "logtext";
private static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " integer primary key autoincrement, " +
LOG_TEXT + " TEXT not null);";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
}
ここでクエリを実行します
String[] columns = {LOG_TEXT,COLUMN_ID};
Cursor cursor = helper.getReadableDatabase().query(TABLE_NAME, columns, null, null, null, null, COLUMN_ID + " desc");
これは、SQLクエリを含む生成された例外をキャッチします。
catch(Exception e){
Log.D("sql Exception",e.getMessage());}
そしてそれは戻ってきます
no such column: _id: , while compiling: SELECT logtext, _id FROM log ORDER BY _id desc
私は、Oracle SQL とリレーショナル データベース全般に精通しています。それは私のORDER BY句ですか?order by はいつでも使用できると確信していました。GROUP BY と同じ動作はしません。
なぜ例外なのかについてのアイデアはありますか? 誰かが私が ArrayAdaptor ステートメントで更新しているのを見たい場合に備えて。リストビューでカーソルを使用しています
String[] data = query();
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, data);
listView.setAdapter(adapter);}