0

我在使用“光标”读取 SQLite 数据库的数据方面没有太多知识,但是使用一些参考资料和示例我编译了一些来设置这个我不知道为什么它会从数据库中读取,我检查数据是否输入到数据库使用数据库浏览器和它的存在可以有人告诉我如何使这项工作吗?

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

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;
    }

这段代码应该做的是获取所有具有相应日期的记录作为查询值并返回。

现在在主类中,我有这段代码可以逐行捕获并显示在 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;

    }

有人可以告诉我为了检索与日期具有相同长值的记录并将其显示在文本视图中需要进行哪些更改,可以有多个具有相同长值的记录,因此必须使用日期的相同长值并将其显示在文本视图中。

干杯,寻找快速回复。:)

4

2 回答 2

2

使用这种使用游标的简单方法:

 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();

于 2012-05-27T10:14:40.407 回答
0

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

于 2012-05-27T09:11:15.857 回答