我在Android上使用一個SQLite資料庫,我需要從表中獲取一個特定的值。我有一個DataBaseHelper類。
private static final String TABLE_NAME = "my_task"。
private static final String COL1 = "ID"/span>。
private static final String COL2 = "name"/span>。
private static final String COL3 = "status"。
private static final String COL4 = "rec"/span>;
我必須為給定的name獲取列rec的值(它不是0就是1)。我有這個函式來完成這個任務:
public Cursor getRec(String task) {
SQLiteDatabase db = this.getWritableDatabase()。
String q = "SELECT" COL4 " FROM " TABLE_NAME " WHERE " COL2 " = ? "。
Cursor data = db.rawQuery(q, new String[] { task }) 。
return data。
}
我不知道如何從這個回傳的游標中獲得所需的值。我是個新手,所以請幫助我解決這個問題。
uj5u.com熱心網友回復:
函式getRec()回傳一個Cursor,你可以這樣呼叫它:
Cursor c = getRec("John")。
然后你必須檢查游標是否包含任何行,如果包含,你可以提取第一行的值:
String rec;
if (c.moveToFirst()) rec = c.getString(0)。
c.close()。
你可以檢查變數rec的值:
- 如果它是
null,那么'John'在表中未被發現 。
- 如果它不是
null,那么變數rec包含表的列rec的值。
我假設你只期望有1行作為你的查詢結果。
如果你期望超過1行,那么使用一個回圈,在一個串列中收集所有的recs回傳:
ArrayList<String> list = new ArrayList()。
while (c.moveToNext()) {
list.add(c.getString(0) 。)
}
c.close()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309812.html
標籤:
