Проблема с обновлением таблицы SQLite в Android - PullRequest
2 голосов
/ 01 марта 2012

Я хочу поменять местами значения двух строк определенного столбца в SQLite Android

public void updatePosition(int oldVal, int newVal){
    ContentValues updatedValue1 = new ContentValues();
    updatedValue1.putNull(ColName);
    db.update(TABLE_NAME, updatedValue1, ColName + "==" + newVal, null);
    ContentValues updatedValue2 = new ContentValues();
    updatedValue2.put(ColName, newVal);
    db.update(TABLE_NAME, updatedValue2, ColName + "==" + oldVal, null);
    ContentValues updatedValue3 = new ContentValues();
    updatedValue3.put(colName, oldVal);
    db.update(TABLE_NAME, updatedValue2, colName + " IS NULL", null);
}

Если мы предположим, что oldVal = 10 и newVal = 20, то это должно выглядеть так

1st update : put null where value is 20 -- Now colName has 10 and null
2nd update : put 20 where value is 10   -- Now colName has 20 and null
3rd update : put 10 where value is null -- now colName has 20 and 10

итоговый ответ должен быть 20 и 10, но он показывает 20 и 20.

Пожалуйста, помогите мне, где моя логика не работает?

Спасибо ...

1 Ответ

1 голос
/ 01 марта 2012

Какая глупая ошибка в последнем обновлении. Вместо этого

updatedValue3.put(colName, oldVal);
db.update(TABLE_NAME, updatedValue2, colName + " IS NULL", null);

Я должен написать это

updatedValue3.put(colName, oldVal);
db.update(TABLE_NAME, updatedValue3, colName + " IS NULL", null);

Слава Богу ...

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