2010-08-14 3 views
6

Я разрабатываю приложение, которое требует использования базы данных SQLite. Я реализовал выборку данных, но перед попыткой вставить данные сталкиваются с проблемами. Проблема, с которой я сталкиваюсь, заключается в том, что новые данные, которые я вводил, не сохраняются, т. Е. Ничего нового не вводится в базу данных.Данные, не вставляемые в базу данных Sqlite в android

Это мой код вставки, myDataBase - это экземпляр SQLiteDatabase.

public void insertTitle(String Recipe) 
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(COLUMN_NAME,value); 
    myDataBase.insert(ZRECIPE, null, initialValues); 
} 
+0

Что такое возвращаемое значение 'вставки()': -1 (ошибка), или действительный идентификатор строки? – LarsH

ответ

2

Вы забыли совершить сделку.

+2

Привет, но как совершить transcaction ..? – Jaymin

+0

Не уверен, но я полагаю, что 'setTransactionSuccessful()' на самом деле является фиксацией. – Stan

6

Попробуйте это так. Вам нужно сначала начать транзакцию, а затем отметить ее как успешную и завершающую.

try { 
     myDataBase.beginTransaction(); 
     myDataBase.insert(ZRECIPE, null, initialValues); 
     myDataBase.setTransactionSuccessful(); 
     } 
    finally { 
     myDataBase.endTransaction(); 
     } 
+0

Нужно ли делать явную транзакцию, чтобы заставить ее совершить? Не использует ли SQLite режим autocommit по умолчанию? – LarsH

-1

Попробуйте с этим кодом, это может помочь вам

public void insertTitle(String Recipe) 
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(COLUMN_NAME,Recipe); 
    myDataBase.insert(ZRECIPE, null, initialValues); 
} 
Смежные вопросы