2010-08-14 26 views
6

Sto sviluppando un'applicazione che richiede l'uso di un database SQLite. Ho implementato il recupero dei dati, ma sto affrontando problemi quando provo a inserire i dati. Il problema che sto avendo è che i nuovi dati che inserisco non sono memorizzati, non c'è nulla di nuovo che viene inserito nel database.Dati non inseriti nel database Sqlite in Android

Questo è il mio codice inserto, myDataBase è un'istanza di SQLiteDatabase.

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

Qual è il valore di ritorno da 'inserto()': -1 (errore), o un ID riga valida? – LarsH

risposta

2

Hai dimenticato di confermare la transazione.

+2

Ciao, ma come commettere la trascrizione ..? – Jaymin

+0

Non sono sicuro, ma suppongo che 'setTransactionSuccessful()' sia effettivamente il commit. – Stan

6

Provalo in questo modo. È necessario prima avviare la transazione, quindi contrassegnarla come completata e terminare.

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

È necessario eseguire una transazione esplicita per ottenere il commit? SQLite non usa la modalità autocommit di default? – LarsH

-1

prova con questo codice di questo può aiutare

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