检查SQL整数字段是否为空

时间:2012-10-08 12:06:57

标签: android sql integer field

我尝试从android中的SQL数据库中获取一个项目,一切顺利,我唯一要努力的是获取INTEGER值是否在数据库中没有填充(null?)

所以我首先初始化它,然后从数据库中获取Integer值,然后将其分配给我的类的实例。我曾经被告知,如果它不会从数据库中获取任何内容,它将保留初始值,但这可能是错误的?我现在用:

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

2 个答案:

答案 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。*

的形式返回该列的值