【问题标题】:getAll from sqlite database android从sqlite数据库android getAll
【发布时间】:2013-06-08 23:46:35
【问题描述】:

我想制作一份注明日期的备忘录,我在与日历不同的地方输入活动日期。如何根据我喂食的日期显示日历中的所有事件?

public List<Foto> getAllFotoList() {
        List<Foto> fotoList = new ArrayList<Foto>();

        String query_tb_foto = "SELECT * FROM " + TABLE_FOTO;

        // SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query_tb_foto, null);

        if (cursor.moveToFirst()) {
            do {
                // Siswa siswa = new Siswa(cursor.getString(0),
                // cursor.getString(1));
                Foto foto = new Foto(cursor.getString(cursor
                        .getColumnIndexOrThrow("COL_JUDULFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_IMG")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_DESFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_STARTDATEFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_STARTTIMEFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_ENDDATEFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_ULANGFT")),
                        cursor.getString(cursor
                                .getColumnIndexOrThrow("COL_ALARMFT")));
                fotoList.add(foto);
            } while (cursor.moveToNext());
            return fotoList;
        }
        return null;
    }

这是真的吗?感谢您的回复。

【问题讨论】:

  • 您是否尝试仅从 SQLite 数据库表中选择某些日期?
  • 是的。我想在适当的日期报废。你能帮我吗?
  • 我用List显示日期有错吗?
  • 我发布了一个可以帮助您的答案。如果您有任何问题,请告诉我。
  • 如果您事先不了解数据集,请避免使用 List 类。请改用 SimpleCursorAdapter。

标签: android database eclipse sqlite datetime


【解决方案1】:

您需要使用SELECT * FROM some_table WHERE date('1990-01-01'); 之类的内容(只需插入您的自定义日期)。这应该返回表中具有相同日期值的所有结果。请参阅this post 了解更多说明,并参阅SQLite documentation 了解您还可以对日期做什么。

两个回答你的第二个问题,使用ListView 应该没问题。我个人使用ArrayListSQLite 结果填充我的ListViews,因为查询返回任意数量的结果。 ArrayList 可以轻松存储和访问这些结果。

【讨论】:

    【解决方案2】:

    您是否将日期视为 GMTTIMESTAMP? 如果是这样

     String Q= "SELECT * FROM "+TABLE_FOTO +" ORDER BY GMTTIMESTAMP DESC;"; 
    

    会将所有最新的数据行放在最前面。

    或者你可以通过你的主键来引用它?

    我总是被告知要确保你记得在括号内放一个分号,否则你会让自己对 SQL 注入持开放态度。

    你总是想检查空游标,所以你也应该有

    if(cursor!=null&amp;&amp;cursor.moveToFirst()){}

    【讨论】:

    • 所以这个查询String Q= "SELECT * FROM "+TABLE_FOTO +" ORDER BY GMTTIMESTAMP DESC;"; 调用了我的表COL_STARTDATEFT 的列TABLE_FOTO ??
    • 我需要在我的日历菜单中添加一些代码吗?我对算法的逻辑感到困惑:)
    • 是 COL_STARTDATEFT 或 COL_STARTTIMEFT 时间戳或字符串,所以您是输入为“currentSystemTime()”(这是一个类似于 103774000 的 gmttimestamp)还是将它们作为字符串输入?
    猜你喜欢
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多