2010-08-14 9 views
6

Pracuję nad aplikacją, która wymaga użycia bazy danych SQLite. Zaimplementowałem pobieranie danych, ale napotykam problemy, gdy próbuję wstawić dane. Problem, który mam, polega na tym, że nowe dane, które wprowadzam, nie są przechowywane, tzn. Nic nie jest nowe, jest wprowadzane do bazy danych.Dane nie włożono do bazy danych Sqlite w Androidzie

To jest mój kod wstawki, myDataBase jest instancją SQLiteDatabase.

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

Jaka jest wartość zwracana przez 'wkładki()': -1 (błąd) lub ważny dowód tożsamości wiersz? – LarsH

Odpowiedz

2

Zapomniałeś dokonać transakcji.

+2

Cześć, ale jak zatwierdzić transcakcję ...? – Jaymin

+0

Nie jestem pewien, ale myślę, że 'setTransactionSuccessful()' faktycznie jest zatwierdzeniem. – Stan

6

Wypróbuj w ten sposób. Musisz najpierw rozpocząć transakcję, a następnie oznaczyć ją jako udaną i zakończyć.

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

Czy konieczne jest dokonanie jawnej transakcji, aby uzyskać zatwierdzenie? Czy SQLite nie używa domyślnie trybu autocommit? – LarsH

-1

Spróbuj z tym kodem to może pomóc

public void insertTitle(String Recipe) 
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(COLUMN_NAME,Recipe); 
    myDataBase.insert(ZRECIPE, null, initialValues); 
} 
Powiązane problemy