Проблемы со строкой обновления Android - PullRequest
0 голосов
/ 17 апреля 2011

В приложении, которое мы собираем вместе, я пытаюсь обновить строки из разных Деятельностей, но оно выдает ошибку или ничего не обновляет, потому что я не могу получить текущий rowId, как только я перехожу от одного действия к другому. Любые мысли были бы великолепны.

Это происходит из Задания:

Cursor value;

db.open();
long rowId = value.getLong(value.getColumnIndex("_id"));
boolean id = db.updateA(rowId, a1, a2, a3, a4);
db.close();

Если я установлю «rowId = 1», он будет корректно обновлять эту строку, но я хочу получить только что созданную строку в другом действии.

Это в файле DBHelper:

public boolean updateA(long rowId, String a1,String a2, String a3, String a4) {
ContentValues args = new ContentValues();

args.put(C_A1, a1);
args.put(KEY_A2, a2);
args.put(KEY_A3, a3);
args.put(KEY_A4, a4);
return db.update(TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}

Ответы [ 3 ]

0 голосов
/ 18 апреля 2011

Я не понимаю.

У вас есть действие А, которое открывает БД, обновляет строку и закрывает БД.Это делается с помощью класса SQLiteOpenHelper.

Теперь вы переходите к заданию B, и что теперь?Отправьте свой первичный ключ (вы знаете, вы использовали его как A) с putExtra для B (или просто поместите всю строку в B).Если вы поместите rowid в B, вы можете открыть, перечитать строку, обновить при необходимости и закрыть снова.Если вы просто поместите всю строку в B, ну, это все, что вам нужно сделать, но мне бы это не понравилось (например, что произойдет, если B выйдет из строя?).

Если вы обновляете в обоих действиях без ведома, чтооба вида деятельности (и без перечитывания строк) - это просто удача, чем вы закончите.

0 голосов
/ 07 марта 2012

Попробуйте это:

return db.update(TABLE, args, KEY_ROWID + "='" + rowId + "'", null)
0 голосов
/ 17 апреля 2011

Если вам нужно обновить запись, я бы предложил сохранить ее при создании в объекте данных в памяти и передать ее другому действию, которое должно выполнить обновление.У объекта данных должно быть свойство для собственного идентификатора, так что вы можете просто использовать его.

Отсутствие ссылки на запись, которую необходимо обновить, приведет к катастрофе.Кроме того, если вы знаете, что вам всегда нужно обновить запись, почему бы вам просто не сделать это при вставке?

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