Android SQL 光标
Android SQL Cursor
我在 Android 上使用 SQLite 数据库,我需要来自 table 的特定值。我有一个 DataBaseHelper
class.
private static final String TABLE_NAME = "my_task";
private static final String COL1 = "ID";
private static final String COL2 = "name";
private static final String COL3 = "status";
private static final String COL4 = "rec";
我必须获取给定 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;
}
我不知道如何从这个返回的游标中获取所需的值。我是新手,所以请帮助我。
函数 getRec()
returns a Cursor
你可以这样调用它:
Cursor c = getRec("John");
然后你必须检查游标是否包含任何行,如果有你可以提取第一行的值:
String rec;
if (c.moveToFirst()) rec = c.getString(0);
c.close();
你可以查看变量的值rec
:
- 如果是
null
那么 'John'
在 table 中找不到
- 如果它不是
null
,则变量 rec
包含 table. 的列 rec
的值
我假设您只希望查询结果为 1 行。
如果您希望超过 1 行,则使用循环收集列表中返回的所有 rec
:
ArrayList<String> list = new ArrayList();
while (c.moveToNext()) {
list.add(c.getString(0));
}
c.close();
我在 Android 上使用 SQLite 数据库,我需要来自 table 的特定值。我有一个 DataBaseHelper
class.
private static final String TABLE_NAME = "my_task";
private static final String COL1 = "ID";
private static final String COL2 = "name";
private static final String COL3 = "status";
private static final String COL4 = "rec";
我必须获取给定 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;
}
我不知道如何从这个返回的游标中获取所需的值。我是新手,所以请帮助我。
函数 getRec()
returns a Cursor
你可以这样调用它:
Cursor c = getRec("John");
然后你必须检查游标是否包含任何行,如果有你可以提取第一行的值:
String rec;
if (c.moveToFirst()) rec = c.getString(0);
c.close();
你可以查看变量的值rec
:
- 如果是
null
那么'John'
在 table 中找不到
- 如果它不是
null
,则变量rec
包含 table. 的列
rec
的值
我假设您只希望查询结果为 1 行。
如果您希望超过 1 行,则使用循环收集列表中返回的所有 rec
:
ArrayList<String> list = new ArrayList();
while (c.moveToNext()) {
list.add(c.getString(0));
}
c.close();