计算SQLite Android如何正确显示光标

时间:2017-04-26 12:27:25

标签: android sqlite time count

我有一个简单的SQLite原始查询函数,它看起来像:

public Cursor getOccurations ()
{
    SQLiteDatabase db =this.getWritableDatabase();
    Cursor data= db.rawQuery("select count(*) from Beacon_occurations where BEACON_ADDRESS='" + COL_2 + "' and TIME='" + COL_3 +"'", null);
    return data;
}

现在这是一个问题,我应该如何正确显示它?当我尝试做类似的事情时:

            data = db.getOccurations();
            string = data.toString();
            Log.e("Message",string);

我得到:消息:android.database.sqlite.SQLiteCursor@1a81ae97 ofc它不是我想要的数据:) 我该怎么做呢?

3 个答案:

答案 0 :(得分:1)

有关此类调试日志记录的目的,请查看DatabaseUtils#dumpCursorToString()

出于非调试目的,请致电But when i use the code below if(freq.equals("new")),it shows invalid token. {String queue[] = {"Hi","How are you"} if(freq.equals("old")) String queue[] ={"Hi","How are you","take care"} } 等。在光标上。

答案 1 :(得分:0)

试试这个:

while(data.moveToNext()){
String s = data.getString(data.getColumnIndex("column Name"));
}

while(data.moveToNext()){
    String s = data.getString(0);
    }

答案 2 :(得分:0)

使用帮助函数(例如longForQuery()stringForQuery())可以更轻松地从查询中读取单个值:

public long getOccurations()
{
    SQLiteDatabase db = getWritableDatabase();
    return DatabaseUtils.longForQuery(db,
            "select count(*) from Beacon_occurations where BEACON_ADDRESS=? and TIME=?",
            new String[]{ COL_2, COL_3 });
}

但是要计算行数,还有一个更简单的辅助函数queryNumEntries()

public long getOccurations()
{
    SQLiteDatabase db = getWritableDatabase();
    return DatabaseUtils.queryNumEntries(
            db, "Beacon_occurations",
            "BEACON_ADDRESS=? and TIME=?",
            new String[]{ COL_2, COL_3 });
}