伙计们我在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”那么我该如何使这个条件有效。
答案 0 :(得分:7)
如果您已在数据库中存储了“null”文字字符串,则将其与之进行比较 -
if ( "null".equals(str) )
要在数据库表中存储空值,请使用PreparedStatement.setNull()
答案 1 :(得分:0)
如果你的value = null,resultset.isNull也给我一个false值。
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){ }