Не получается обновить строку в таблице БД

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Не получается обновить строку в таблице БД

Сообщение aleksbim » 16 окт 2015, 14:43

Код: Выделить всё

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.
Вложения
рис.JPG
рис.JPG (12.71 КБ) 2820 просмотров

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не получается обновить строку в таблице БД

Сообщение Foenix » 17 окт 2015, 21:51

ну ты же апдейтишь на то же самое число where =1 апдейт на 1 идет. Смысл?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Не получается обновить строку в таблице БД

Сообщение aleksbim » 20 окт 2015, 17:56

Спасибо за ответ, но я не могу понять, что конкретно в коде не так. Код выполняется по факту удаления 1-й строки. Таблица на выходе:
Вложения
db2.JPG
db2.JPG (11.73 КБ) 2798 просмотров

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Не получается обновить строку в таблице БД

Сообщение Foenix » 20 окт 2015, 22:30

db_rashody.update("tableRashody", cv, "category = ?", new String[] { num });
тут написано, что обновляется строка где категория равна Integer.toString(x); Т.е. категория равна 1 (для 1 цикла). Где у тебя такая категория, можешь сказать? какая строчка-то? Ты перепутал столбцы таблицы.
Второе - судя по заданию, что ты писал, тебе нужно прибавлять номера, поэтому в cv тебе нужно указывать num-1 (для примера), а обновлять столбик, где num_category =num. Т.е. со сдвигом.

Хотя мне эта затея совершенно не нравится, что-то сомнение у меня вызывает сама постановка задачи.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

aleksbim
Сообщения: 81
Зарегистрирован: 02 фев 2013, 02:52

Re: Не получается обновить строку в таблице БД

Сообщение aleksbim » 21 окт 2015, 17:55

Спасибо, достаточно понятно объяснили! Заработало!

Ответить