从android中的Sqlite数据库中检索null值

时间:2012-02-07 05:14:36

标签: java android eclipse sqlite

伙计们我在sqlite数据库的列中存储了一个空值

存储的值为return "null"

现在使用以下代码检索它

int i = resultSet.getInt(resultSet.getColumnIndex(columnName));
String str = resultSet.getString(resultSet.getColumnIndex(columnName));
boolean bool = resultSet.isNull(resultSet.getColumnIndex(columnName));

if( str == null ) {
    return -1;
}            
return i;

调试器显示str = "null"

的值

但是这种情况不适用于str == null , str == "" , str == "null"

任何人都可以给我一个怎么做的事。

同样resultset.isNull给我的值为false。

那么如何在数据库中存储null,其次如果我使用“null”那么我该如何使这个条件有效。

3 个答案:

答案 0 :(得分:7)

如果您已在数据库中存储了“null”文字字符串,则将其与之进行比较 -

if ( "null".equals(str) )

要在数据库表中存储空值,请使用PreparedStatement.setNull()

答案 1 :(得分:0)

  

resultset.isNull也给我一个false值。

如果你的value = null,

resultset.isNull将给出true。但正如你所说的你的值=“null”,这是一个字符串。

  

调试器显示str =“null”的值

     

但是这个条件不能用于str == null,str ==“”,str ==“null”

尝试与str.equals(“null”)进行比较

  

mDb.execSQL(updateQuery,valVars);使用this和null作为存储在valVar中的参数之一但它给出了空指针异常的错误

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html上分离时,应该使用此方法 - 执行一个非SELECT / INSERT / UPDATE / DELETE的SQL语句。

请尝试使用update(String表,ContentValues值,String whereClause,String [] whereArgs)或updateWithOnConflict(String表,ContentValues值,String whereClause,String [] whereArgs,int conflictAlgorithm)。还请交叉验证db中的字段是否允许NULL(即非空= 0)

希望这有助于:)

答案 2 :(得分:-1)

检查String length.like,

if(str.length == 0){ }

相关问题