0

私は、1 つのタイプの同様のフィールドを持つデータのみを照会して表示したいデータベースを持っています。すべての行に日 (月から日) が含まれているとします。日として... SimpleCursorAdapter を使用して、データベースからすべての行を表示しました... 基本的に、SimpleCursorAdapter でクエリを実行して、月曜日を日としてだけでデータの行を表示する方法を知りたいです...

どんな助けでも大歓迎です... :)

次のコードを使用すると、データベースからすべてのデータを表示できます...

    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.testlayout2);
     listContent = (ListView)findViewById(android.R.id.list);//.id..list);
    mDB = new DataSource(this);
    mDB.open();

    cursor = mDB.queueAll();
    String[] from = new String[]{
            MySQLiteHelper.KEY_START, MySQLiteHelper.KEY_END,
            MySQLiteHelper.KEY_SUBJECT, MySQLiteHelper.KEY_LOC,
            MySQLiteHelper.KEY_TEACHER };
    int[] to = new int[] {R.id.tvStart, R.id.tvEnd,
            R.id.tvSub, R.id.tvLoc, R.id.tvTeacher };


            cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor,
            from, to);

        listContent.setAdapter(cursorAdapter);
        listContent.setOnItemClickListener(listContentOnItemClickListener);
    }

}

クエリはこのようにしたい..

  Cursor cursor = db.query(table, null, "day like " + "'%Monday%'",null, 
                                 null, null, null);

わかりました...お手数をおかけして申し訳ありません。ただし、これのどこが間違っているのか教えてください..コードでこれを作成して、日を照会し、時間で昇順に並べ替えました..

 public Cursor queryDay(String days) {
    Cursor cursor = mDatabase.query(DATABASE_TABLE, mAllColumns, "day like " + 
                     days, null, null, null, Database.KEY_START + " ASC");
    if (cursor.moveToNext()) {
        return cursor;
    }
    return cursor;
}

ただし、このエラーが発生します。

   android.database.sqlite.SQLiteException: no such column: Thursday: , 
   while compiling: SELECT _id, day,start_time, end_time, sub, location, 
   teacher FROM subjectTable WHERE day like Thursday ORDER BY start_time ASC

私はこれをこのように呼んでいます..

 Cursor cursor = mDB.queryDay("Thursday");
 startManagingCursor(cursor);
4

2 に答える 2

2

アダプターにクエリを実行するのではなく、データベースにクエリを実行すると、カーソルが提供され、それがリスト アダプターに読み込まれます。

mDbHelper.rawQuery("SELECT * FROM your_table WHERE day_column = 'Monday');
于 2012-05-18T00:04:04.997 に答える
0

これにより、質問の2番目の部分が解決されます..

    public Cursor queryDay(String days) {
    Cursor cursor = mDatabase.query(DATABASE_TABLE, mAllColumns, "day like " 
     + "'" + days + "'", null,null, null, Database.KEY_START + " ASC");
    if (cursor.moveToNext()) {
        return cursor;
    }
    return cursor;
}
于 2012-05-18T10:22:35.980 に答える