Android 从SQLite数据库读取时出现的问题

Android 从SQLite数据库读取时出现的问题,android,database,sqlite,Android,Database,Sqlite,我对使用“游标”读取SQLite数据库的数据不太了解,但使用一些参考资料和示例,我编译了一些来设置它,我不知道为什么它会从数据库中读取,我检查数据是否使用数据库浏览器输入数据库,以及它的当前状态。有人能告诉我如何进行此操作吗 我有一个单独的类来保存db连接和查询,因为我有一个函数来获取所有具有指定值的长值的字段 public Cursor getAppointments(long date) throws SQLException { Cursor mCursor = d

我对使用“游标”读取SQLite数据库的数据不太了解,但使用一些参考资料和示例,我编译了一些来设置它,我不知道为什么它会从数据库中读取,我检查数据是否使用数据库浏览器输入数据库,以及它的当前状态。有人能告诉我如何进行此操作吗

我有一个单独的类来保存db连接和查询,因为我有一个函数来获取所有具有指定值的长值的字段

public Cursor getAppointments(long date) throws SQLException
    {
    Cursor mCursor =
    db.query(true, DATABASE_TABLE, new String[] {
    KEY_ROWID,
    APP_TIME,
    APP_TITLE,
    },
    APP_DATE + "="  + date,
    null,
    null,
    null,
    null,
    null);
    if (mCursor != null) {
    mCursor.moveToFirst();
        }
    return mCursor;
    }
这段代码要做的是获取所有记录,这些记录以相应的日期作为查询值并返回

现在在main类中,我有了这些代码,可以在Textview中逐行捕获和显示

 db.open();
       Display.setText("");
       Cursor c = db.getAppointments(SDate);

      if (c.moveToFirst())
          Display.setText(DisplayTitle(c));
       else
       Toast.makeText(this, "No title found",
       Toast.LENGTH_LONG).show();

       db.close();
显示标题的方法是

private String DisplayTitle(Cursor c) {

        String Final ="";

        Final = c.getString(1)  + " " +c.getString(2) + " " +  c.getString(3)  + "\n" ;

        return Final;

    }
有人能告诉我,为了检索与日期具有相同长值的记录并在textview中显示它,需要做哪些更改吗?可以有多个具有相同长值的记录,因此必须检索具有相同长值的所有记录并在textview中显示


干杯,渴望快速回复。:)

您已开始从DisplayTitle方法中的索引1读取光标。应该是0。分别表示c.getString(0)和。

使用游标的简单方法:

 String q = "SELECT * FROM DATABASE_TABLE where(APP_DATE like '"+date+"')";//your query
 Cursor c = db.rawQuery(q, null); //  db is a object of SQLiteDatabase type  
然后,如果您不确定列索引,请使用列名称和getColumnIndex()方法检索相应列的值,如:

              if(c.getCount() == 0)
              {                   
                 //No entry found
              }
              else  {
                  c.moveToFirst();
                  do {
                      String mail = c.getString(c.getColumnIndex("KEY_ROWID"))+c.getString(c.getColumnIndex("APP_TIME"))+c.getString(c.getColumnIndex("APP_TITLE")); 
                        // do whatever you like with each record                    
                    } while (c.moveToNext());               
            c.close();
            db.close();


我尝试了,但我得到了数组超出索引边界的异常,并说游标为空Sok,然后作为上面提到的imran,尝试一个原始查询并检查游标大小计数。