我尝试从我的 android 中的 SQL 数据库中获取一个项目,一切顺利,我唯一苦苦挣扎的是获取 INTEGER 值是数据库中没有填充任何内容(null?)
所以我首先初始化它,然后从数据库中获取整数值,然后将它分配给我的类的一个实例。曾经有人告诉我,如果它不会从数据库中得到任何东西,它将保留初始化值,但这可能是错误的?我现在用:
int score = 100;
score = c.getInt(11);
q.setScore(score);
曾经有人告诉我,如果它不会从数据库中得到任何东西,它将保留初始化值
嵌入式 SQL 也是如此。您似乎正在使用结果集对象,所以这是不正确的。如果您尝试从列中获取数字空值,则结果集对象通常返回 0。
用于c.wasNull()
检查您刚刚读取的值是否null
为0
.
编辑(添加了杰克评论中的代码):
int score;
if (c.isNull(11)) {
score = 100;
} else {
score = c.getInt(11);
}
q.setScore(score);
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 形式返回该列的值。*