Простая инструкция вставки не работает. SQLITE - PullRequest
0 голосов
/ 07 февраля 2012

Кажется, у меня возникли трудности с простым оператором вставки базы данных. Я вставляю что-то в базу данных, затем (по причинам отладки) проверяю количество строк. Для первого примера это не работает. Для второго «rawQuery» это так. Я пропускаю что-то простое? Я использовал этот метод множество раз раньше без проблем!

Это не работает:

contentValues = new ContentValues();
contentValues.put("classId", cursor.getString(0));
contentValues.put("to_do", toDo);
contentValues.put("date", date);
out("SIZE OF TODO+"+fetchCount());//returns 105
db.insert("toDo", null, contentValues);
out("NEW SIZE OF TODO+"+fetchCount());//still returns 105!

это делает:

out("SIZE OF TODO+"+fetchCount()); //returns 105
db.execSQL("insert into toDo values(null, "+cursor.getString(0)+", '"+toDo+"', '"+date+"')");
out("NEW SIZE OF TODO+"+fetchCount());//returns 106

Что не так?

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Можно предположить: строки 3 и 4 не вставляют строки в набор ContentValues, а вместо этого - необработанные объекты. Позже, некоторое преобразование типов не удается. Вызовите toString () для ваших параметров.

Во втором отрывке вы неявно форсируете преобразование в строку.

0 голосов
/ 14 февраля 2012

Я такой идиот, @ предложение Роба взглянуть на мои таблицы создания заставило меня понять, что я имел в виду неправильное имя столбца.Мне никогда не приходило в голову, что подобное обновление может молча провалиться!Спасибо @ Роб

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