【问题标题】:Retrieving the null value from Sqlite database in android从android中的Sqlite数据库中检索空值
【发布时间】:2012-02-07 05:14:35
【问题描述】:

伙计们,我在 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”那么我怎样才能使这个条件起作用。

【问题讨论】:

  • Plz 将代码添加到数据库中。

标签: java android eclipse sqlite


【解决方案1】:

如果您在数据库中存储了“null”文字字符串,您可以像这样与它进行比较 --

if ( "null".equals(str) )

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

【讨论】:

  • 你能告诉我如何使用这些preparedStatement吗?任何小例子
  • PreparedStatment 可能是矫枉过正。您可能只使用sqlitedb.execSQL("insert into yourtable values(null, ...");
  • mDb.execSQL(updateQuery, valVars);使用 this 和 null 作为存储在 valVar 中的参数之一,但它给出了空指针异常的错误
【解决方案2】:

resultset.isNull 也给了我一个 false 的值。

resultset.isNull 如果您的值 = null,则返回 true。但正如你所说,你的 value = "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 table, ContentValues values, String whereClause, String[] whereArgs) 或 updateWithOnConflict(String table, ContentValues values, String whereClause, String[] whereArgs, int conflictAlgorithm)。另外请交叉验证您在 db 中的字段是否允许 NULL(即 Not Null = 0)

希望这会有所帮助:)

【讨论】:

  • 实际上我需要运行 sql 语句并使用 Update 和其他我不能使用 sql 语句...
【解决方案3】:

检查字符串长度.like,

如果(str.length == 0){ }

【讨论】:

  • 是的,你说得对。但是如果字符串中没有任何内容意味着长度为零,对吗?
  • 没有人讨论过“字符串中没有任何内容”。
猜你喜欢
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2012-09-24
  • 2013-12-25
相关资源
最近更新 更多