2010-08-14 8 views
6

Ich entwickle eine Anwendung, die die Verwendung einer SQLite-Datenbank erfordert. Ich habe implementiert, die Daten abzurufen, aber ich habe Probleme, wenn ich versuche, Daten einzufügen. Das Problem, das ich habe, ist, dass die neuen Daten, die ich eintrage, nicht gespeichert werden, d. H. Nichts Neues wird in die Datenbank eingegeben.Daten nicht in Sqlite-Datenbank in Android

Dies ist mein Einfügecode, myDataBase ist eine Instanz von SQLiteDatabase.

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

helfen Was ist der Rückgabewert von 'insert()': -1 (Fehler) oder eine gültige Zeile ID? – LarsH

Antwort

2

Sie haben vergessen, die Transaktion zu bestätigen.

+2

Hi, aber wie begeht man den Transcaction ..? – Jaymin

+0

Nicht sicher, aber ich denke, dass 'setTransactionSuccessful()' tatsächlich das Commit ist. – Stan

6

Versuchen Sie es so. Sie müssen zuerst die Transaktion starten, dann als erfolgreich markieren und beenden.

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

Ist es notwendig, eine explizite Transaktion zu machen, um es zum Commit zu bringen? Verwendet SQLite den Autocommit-Modus nicht standardmäßig? – LarsH

-1

mit diesem Code Versuchen Sie, diese können Sie

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