2016-10-19 1 views
1

In meiner Android-Anwendung verwende ich SQLiteDatabase, verwende ich .replace() zum Einfügen/Aktualisieren einer Zeile. Aber wenn ich Select die ganze Zeile ohne Bedingungen versuche, gibt es immer null zurück. Ich frage mich, wie kann ich überprüfen, ob es in meiner Datenbank erfolgreich hinzugefügt oder aktualisiert wurde?Wie überprüft man SQLiteDatabase .replace() bei Erfolg?

+1

verwenden können, können Sie die den Rückgabewert überprüfen. Es ist! = -1, wenn das Ersetzen erfolgreich war – Blackbelt

Antwort

1

replace oder replaceOrThrow wird einen langen Wert zurückgeben, der die Zeilen-ID der neuen Reihe ist, oder -1, wenn ein Fehler aufgetreten ist.
So können Sie es überprüfen, um zu wissen, ersetzen erfolgreich oder nicht

long result = db.replace(tableName, nullColumnHack, values); 
if(result != -1){ 
    // replace successful 
} 

Wenn Sie die Fehlermeldung sehen möchten Sie replaceOrThrow

try { 
    long result = db.replaceOrThrow(tableName, nullColumnHack, values); 
    if(result != -1){ 
     // replace successful 
    } 
} catch (SQLException e) { 
    e.printStackTrace(); 
} 
+0

kann ich das auch für 'select' verwenden? wenn ich erfolgreich eine Zeile bekomme? – natsumiyu

+1

Wenn Sie 'select' verwenden, wird ein 'Cursor' zurückgegeben, überprüfen Sie einfach den' Cursor' Wert, um zu wissen, dass Sie Daten in sqliitedatabase haben oder nicht –

+0

Danke! Ich habe herausgefunden, dass mein 'select' das Problem ist. – natsumiyu