如何从sqlite光标获取列值?

我试图从游标中获取列值,这个列是在运行时通过查询内部的计算生成的,我得到这个列的空值,我能够获得SQLite表中存在的所有其他列的值。

我在SQLite编辑器上执行相同的查询,它也显示结果集中生成列的值。

为什么当我从光标中检索它时会给出空值?

Solutions Collecting From Web of "如何从sqlite光标获取列值?"

非常简单,你可以通过以下任一方式获得它

String id = cursor.getString( cursor.getColumnIndex("id") ); // id is column name in db 

要么

 String id = cursor.getString( cursor.getColumnIndex(0)); // id is first column in db 

游标列名区分大小写,确保您匹配db或列别名中指定的大小写

  1. 如果在select查询中不知道列索引,

    定义表的所有字段的常量,所以很容易得到字段名称,你不需要validation它的法术

    创build名为“DBConstant.java”的Database Costant类并定义表字段

    public static final String ID =“id”;

    然后从光标获得价值,

    cursor.getString(cursor.getColumnIndex(DBConstant.ID));

    cursor.getColumnIndex(field name); 它会在你select语句cursor.getString(列索引)的时候返回字段列索引。 它返回那个列上的值

  2. 如果您在select查询中了解列索引,

    cursor.getString(0);