Получение нулевого значения из базы данных Sqlite в Android - PullRequest
4 голосов
/ 07 февраля 2012

Ребята, я сохранил нулевое значение в столбце базы данных 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.

Так, как я могу сохранить нуль в базе данных, во-вторых, если я использую «ноль», то как я могу заставить это условие работать.

Ответы [ 3 ]

7 голосов
/ 07 февраля 2012

Если вы сохранили «нулевую» литеральную строку в базе данных, вы сравниваете ее с этим следующим образом -

if ( "null".equals(str) )

Чтобы сохранить нулевое значение в вашей таблице базы данных, вы используете PreparedStatement.setNull ()

0 голосов
/ 07 февраля 2012

Кроме того, resultset.isNull дает мне значение false.

resultset.isNull даст значение true, если ваше значение равно нулю.Но, как вы сказали, ваше значение = "null", которое является строкой.

Отладчик показывает значение str = "null"

, но это условие не работает с str == null, str == "", str == "null"

попробуйте сравнить с str.equals ("null")

mDb.execSQL (updateQuery, valVars);ИСПОЛЬЗУЯ это и null в качестве одного из аргументов, хранящихся в valVar, но он выдает ошибку исключения нулевого указателя

Как разделено на http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html, этот метод должен использоваться для - Выполнения одного оператора SQLэто НЕ SELECT / INSERT / UPDATE / DELETE.

Пожалуйста, попробуйте использовать update (таблица String, значения ContentValues, String whereClause, String [] whereArgs) или updateWithOnConflict (таблица String, значения ContentValues, String whereClause, String[] гдеArgs, int конфликтаAlgorithm).Также, пожалуйста, проверьте, что ваше поле в db допускает NULL (т. Е. Not Null = 0)

надеюсь, это поможет:)

0 голосов
/ 07 февраля 2012

Проверка длины строки. Как,

if (str.length == 0) { }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...