Ich habe schon seit einiger Zeit versucht, eine bestimmte Zeile zu aktualisieren, und es scheint, dass es zwei Möglichkeiten gibt, dies zu tun. Nach dem, was ich gelesen und ausprobiert habe, können Sie einfach Folgendes verwenden:
execSQL(String sql)
Methode
oder der:
update(String table, ContentValues values, String whereClause, String[] whereArgs)
Methode.
(Lassen Sie mich wissen, wenn dies falsch ist, da ich neu in Android und sehr neu in SQL bin.)
Lassen Sie mich also zu meinem eigentlichen Code gelangen.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
Ich versuche dies zu erreichen:
Aktualisieren Sie Feld1, Feld2 und Feld3, wobei der Primärschlüssel (_id) gleich 1 ist.
Eclipse gibt mir eine rote Linie direkt unter dem Wort "Update" und gibt mir diese Erklärung:
Die Methodenaktualisierung (String, ContentValues, String, String []) im Typ SQLiteDatabase gilt nicht für die Argumente (String, String, String, null).
Ich schätze, ich ordne die ContentValues nicht richtig zu. Kann mich jemand in die richtige Richtung weisen?
myDB.update(TableName, cv, "_id=?", new String[]{id})
. SQLite füllt automatisch den vierten Parameter in das "?" im dritten Parameter, dh der WHERE-Klausel. Wenn Ihr dritter Parameter n "?" S enthält, sollte der vierte Parameter ein String [] der Länge n seinEinfacher Weg:
quelle
execSQL()
für Updates funktioniert nicht. Read execSQL () mit UPDATE wird nicht aktualisiert .Erstellen Sie zunächst ein ContentValues- Objekt:
Verwenden Sie dann die Aktualisierungsmethode. Beachten Sie, dass das dritte Argument die where-Klausel ist. Das "?" ist ein Platzhalter. Es wird durch das vierte Argument (id) ersetzt.
Dies ist die sauberste Lösung zum Aktualisieren einer bestimmten Zeile.
quelle
Dieser Code sollte Ihr Beispiel korrigieren:
quelle
Sie können dies versuchen ...
quelle
hoffe das hilft dir:
quelle
Sie versuchen diese eine Aktualisierungsmethode in SQLite
quelle
Verwenden Sie diesen Code in Ihrer Datenbank
Verwenden Sie diesen Code, um in Ihrer sample.java zu aktualisieren
quelle
Kann so versuchen:
quelle
Wenn Ihre SQLite-Zeile eine eindeutige ID oder eine andere Entsprechung hat, können Sie die where-Klausel wie diese verwenden
quelle
"where _id = 1"
. Die Änderung spiegelt sich auch in meiner Frage wider.Für Updates müssen Sie setTransactionSuccessfull aufrufen, damit Änderungen wie folgt festgeschrieben werden:
quelle
// Hier ist ein einfacher Beispielcode für die Aktualisierung
// Deklariere dies zuerst
// initialisiere folgendes
// Aktualisierungscode
// setze deine ID anstelle des 'Fragezeichens' ist eine Funktion in meiner gemeinsamen Präferenz.
quelle
quelle
versuchen Sie es einfach so
quelle
Methode zur Aktualisierung in SQLite:
quelle
quelle
quelle
Geben Sie einfach die Zeilen-ID und den Datentyp an, der in ContentValues aktualisiert werden soll.
public void updateStatus (String-ID, int-Status) {
SQLiteDatabase db = this.getWritableDatabase ();
ContentValues-Daten = neue ContentValues ();
data.put ("Status", Status);
db.update (TableName, data, "columnName" + "=" + id, null);
}}
quelle
Ich werde mit einem vollständigen Beispiel demonstrieren
Erstellen Sie Ihre Datenbank auf diese Weise
Erstellen Sie dann eine Klasse, um CRUD zu vereinfachen -> Erstellen | Lesen | Aktualisieren | Löschen
Jetzt kommt die Magie
Sie müssen Ihren ProductsAdapter erstellen, der einen CursorAdapter zurückgeben muss
Rufen Sie in einer Aktivität einfach die Funktion wie folgt auf
quelle