Wie aktualisiert man Daten in Sqlite?

In meiner Android-Anwendung verwende ich SQLite-Datenbank. Ich verwende den folgenden Code, um Daten zu aktualisieren, aber die Daten werden nicht aktualisiert.

public int setCurrentLevel(int level)
{
  //update table level set currentlevel = level;
  int slevel = level;
  Log.d("QUIZ APP", "inside on setcreatelevel is "+slevel);
  ContentValues args = new ContentValues();
  args.put("currentlevel", slevel);

  return db.update("level", args, "currentlevel" + ">=" + slevel, null);
}
0
hinzugefügt bearbeitet
Ansichten: 1
Verwenden Sie ContentValues ​​ für die Aktualisierung. Werfen Sie einen Blick auf diesen Blog und verwenden Sie ihre Beispielanwendung
hinzugefügt der Autor Praveenkumar, Quelle
public int setCurrentLevel (int level) {// Aktualisierung der Tabellenebene set currentlevel = level; int slevel = Ebene; Log.d ("QUIZ APP", "innen auf setcreatelevel ist" + slevel); ContentValues ​​args = neue ContentValues ​​(); args.put ("currentlevel", slevel); return db.update ("level", Argumente, "currentlevel" + "> =" + slevel, null)> 0; }
hinzugefügt der Autor Androiduser, Quelle
Deine Tabelle hat einen Standardwert
hinzugefügt der Autor machu, Quelle
In log gibt es den slevel-Wert zurück. Die Datenbank bleibt gleich wie der Standardwert.
hinzugefügt der Autor machu, Quelle
Hat die Tabelle einen Standardwert? es muss mindestens einen einzelnen Wert haben, wobei currentlevel> = slevel ist.
hinzugefügt der Autor Pallavi, Quelle
Was gibt es zurück?
hinzugefügt der Autor Pallavi, Quelle
Es sollte tatsächlich die Anzahl der aktualisierten Zeilen und nicht den slevel-Wert zurückgeben. Bitte überprüfen Sie den Rückgabewert.
hinzugefügt der Autor Pallavi, Quelle
Bitte posten Sie auch die db-Adapter-Klasse
hinzugefügt der Autor Rakshi, Quelle

5 Antworten

Bitte schön

db.update("level",args,"currentlevel>= ?", new String[] { String.valueOf(level) });
2
hinzugefügt

Verwenden Sie diese Art von Code in Ihrer Funktion

public boolean updateTitle(long rowId, String isbn,
String title, String publisher)
{
ContentValues args = new ContentValues();
args.put(KEY_ISBN, isbn);
args.put(KEY_TITLE, title);
args.put(KEY_PUBLISHER, publisher);
return db.update(DATABASE_TABLE, args,
KEY_ROWID + "=" + rowId, null) > 0;
}
0
hinzugefügt
Ich habe die Tabelle sqlite Manager Tool erstellt, wird es ein Problem sein.
hinzugefügt der Autor machu, Quelle

Versuche dies

    public int setCurrentLevel(int level)
   {
            //update table level set currentlevel = level;
            int slevel = level;
            Log.d("QUIZ APP", "inside on setcreatelevel is "+slevel);
            ContentValues args = new ContentValues();
            args.put("currentlevel", slevel);
             return db.update("level", args, 
                 "currentlevel" + ">=" + slevel, null)>0;

      }
0
hinzugefügt
Standdaten werden nicht aktualisiert.
hinzugefügt der Autor machu, Quelle

Verwenden Sie diese Abfrage ......... und erwähnen Sie auch einige Bedingungen, unter denen Sie dieses Update auslösen möchten

      db.execSQL("UPDATE "+tableName+" SET "+columnNameValue+" WHERE "+condition+"");

Ihre Abfrage sieht etwa so aus:

    db.execSQL("UPDATE level SET currentlevel="+slevel +" WHERE currentlevel \\>=" + slevel+"");
0
hinzugefügt

Versuche dies,

ContentValues cv = new ContentValues();
cv.put("Field", value);
db.update("Table", cv, "Field='value'", null);
0
hinzugefügt