我有一个简单的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它不是我想要的数据:) 我该怎么做呢?
答案 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 });
}