2014-02-04 3 views
0

У меня очень странная проблема.Вставить и выбрать в Android

После много отладки я пришел к следующей строке кода:

db.db.rawQuery("INSERT INTO goal_calendar(timestamp) VALUES(1)", null); 
db.cursor = db.db.rawQuery("SELECT * FROM goal_calendar", null); 
Log.e("SIZE", String.valueOf(db.cursor.getCount())); 

В результате «Размер 0». Нет никаких ошибок. Все работало отлично, и вдруг он не хотел ничего хранить в моем столе. Он просто остановился. Что может быть неправильным?

По мне результат после этих трех строк кода всегда должна быть ошибка (исключение) или SIZE должно быть больше 0.

ответ

3

Поскольку это

"INSERT INTO goal_calendar(timestamp) VALUES(1)" 

не QUERY (SELECT), но КОМАНДА.

Для команд (INSERT, UPDATE, DELETE, ...), используйте:

db.execSQL("INSERT INTO goal_calendar (timestamp) VALUES (1)", null); 

У меня также есть некоторые сомнения относительно почему вы двойной "дб."
Я бы использовал «db.rawQuery» и «db.execSQL» вместо «db.db.rawQuery» и «db.db.execSQL».

Теперь два объяснения:
Ваш оператор INSERT не работает. Вот почему ваш запрос правильно возвращает нулевой счет.

+0

Thx много. Я думал, что rawQuery можно использовать для всего, но я ошибся :) –

+0

Это происходит, когда вы свежие базы данных, чтобы запутать запросы и команды. –

Смежные вопросы