Страница 1 из 1
Не получается обновить строку в таблице БД
Добавлено: 16 окт 2015, 14:43
aleksbim
Код: Выделить всё
int x=1;
do {
String categ = c.getString(category_ColIndex);
String num=Integer.toString(x);
cv.put("num_category", num);
cv.put("category", categ);
Log.d("my_logs","num_category="+x+", category="+categ+", numString="+num );
db_rashody.update("tableRashody", cv, "category = ?",
new String[] { num });
x=x+1;
} while (c.moveToNext());
При удалении, например, строки 1, значения в num_category нужно перенумеровать начиная с 1.
Re: Не получается обновить строку в таблице БД
Добавлено: 17 окт 2015, 21:51
Foenix
ну ты же апдейтишь на то же самое число where =1 апдейт на 1 идет. Смысл?
Re: Не получается обновить строку в таблице БД
Добавлено: 20 окт 2015, 17:56
aleksbim
Спасибо за ответ, но я не могу понять, что конкретно в коде не так. Код выполняется по факту удаления 1-й строки. Таблица на выходе:
Re: Не получается обновить строку в таблице БД
Добавлено: 20 окт 2015, 22:30
Foenix
db_rashody.update("tableRashody", cv, "category = ?", new String[] { num });
тут написано, что обновляется строка где категория равна Integer.toString(x); Т.е. категория равна 1 (для 1 цикла). Где у тебя такая категория, можешь сказать? какая строчка-то? Ты перепутал столбцы таблицы.
Второе - судя по заданию, что ты писал, тебе нужно прибавлять номера, поэтому в cv тебе нужно указывать num-1 (для примера), а обновлять столбик, где num_category =num. Т.е. со сдвигом.
Хотя мне эта затея совершенно не нравится, что-то сомнение у меня вызывает сама постановка задачи.
Re: Не получается обновить строку в таблице БД
Добавлено: 21 окт 2015, 17:55
aleksbim
Спасибо, достаточно понятно объяснили! Заработало!