0

我尝试从我的 android 中的 SQL 数据库中获取一个项目,一切顺利,我唯一苦苦挣扎的是获取 INTEGER 值是数据库中没有填充任何内容(null?)

所以我首先初始化它,然后从数据库中获取整数值,然后将它分配给我的类的一个实例。曾经有人告诉我,如果它不会从数据库中得到任何东西,它将保留初始化值,但这可能是错误的?我现在用:

int score = 100;
score = c.getInt(11);
q.setScore(score);
4

2 回答 2

1

曾经有人告诉我,如果它不会从数据库中得到任何东西,它将保留初始化值

嵌入式 SQL 也是如此。您似乎正在使用结果集对象,所以这是不正确的。如果您尝试从列中获取数字空值,则结果集对象通常返回 0。

用于c.wasNull()检查您刚刚读取的值是否null0.

编辑(添加了杰克评论中的代码):

int score; 
if (c.isNull(11)) { 
  score = 100; 
} else { 
  score = c.getInt(11); 
} 
q.setScore(score);
于 2012-10-08T12:27:10.027 回答
0

http://developer.android.com/reference/android/database/Cursor.html#getInt(int )

*public abstract int getInt (int columnIndex) 自:API 级别 1 以 int 形式返回所请求列的值。当列值为空、列类型不是整数类型或整数值超出范围 [Integer.MIN_VALUE, Integer.MAX_VALUE] 时,结果以及此方法是否引发异常由实现定义。参数 columnIndex 目标列的从零开始的索引。以 int 形式返回该列的值。*

于 2012-10-08T12:30:34.263 回答