我尝试从android中的SQL数据库中获取一个项目,一切顺利,我唯一要努力的是获取INTEGER值是否在数据库中没有填充(null?)
所以我首先初始化它,然后从数据库中获取Integer值,然后将其分配给我的类的实例。我曾经被告知,如果它不会从数据库中获取任何内容,它将保留初始值,但这可能是错误的?我现在用:
int score = 100;
score = c.getInt(11);
q.setScore(score);
答案 0 :(得分:1)
我曾被告知,如果它不会从数据库中获取任何内容,它将保留初始化值
嵌入式SQL也是如此。您似乎正在使用结果集对象,所以它不是真的。 如果您尝试从列中获取数字空值,则Resultset对象通常返回0。
使用c.wasNull()
检查您刚刚阅读的值是null
而不是0
。
编辑(添加了杰克评论中的代码):
int score;
if (c.isNull(11)) {
score = 100;
} else {
score = c.getInt(11);
}
q.setScore(score);
答案 1 :(得分:0)
http://developer.android.com/reference/android/database/Cursor.html#getInt(int)
* public abstract int getInt (int columnIndex)从以下版本开始:API Level 1以int形式返回请求列的值。结果和 当列值为null时,此方法是否抛出异常, 列类型不是整数类型,或整数值是 超出范围[Integer.MIN_VALUE,Integer.MAX_VALUE]是 实现定义。参数columnIndex从零开始的索引 目标列。以int。*
的形式返回该列的值