Страница 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
Спасибо, достаточно понятно объяснили! Заработало!