2017-02-21 2 views
0

Ich bin auf wo weiter zu gehen verloren, habe ich eine Datenbank, speichert, Name, E-Mail, uname, Passwort, Kalorien. Ich möchte den Wert der Spalte "Kalorien" basierend auf dem Benutzernamen aktualisieren. Wenn ein neues Konto erstellt wird, wird der Kalorienwert auf den Standardwert gesetzt.Wie aktualisiert man den Wert eines Artikels in einer Datenbank mit mysql

Hier ist mein Code Ich habe einen Start gemacht. Ich habe eine Klasse namens Datenbank vorgenommen, die alle meine Datenbankfunktionen speichert .. Der Code:

SQLiteDatabase db; 

    public void 
{ 
    db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 


    String query = "update tbltest set calories= "+c.getCalories()+" where uname= "+ c.getUname(); 






    Cursor cursor = db.rawQuery(query , null);; 

} 

Angebot jede Hilfe, wie ich das erreichen kann?

Antwort

0

mit diesem Versuchen zu aktualisieren ...

public void insertCalories(Intents c) 
{ 
    db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put("calories", c.getCalories); 
    String selection = "where uname = ?"; 
    String[] selectionArgs = new String[]{c.getUname()}; 

    int result = db.update(
     "tbltest", 
     values, 
     selection, 
     selectionArgs); 

} 

wenn Ergebnis> 0, dann Update erfolgreich ist.

+0

können Sie Cursor verwenden c = db.query ("tbltest", null, "uname =?", Null, null, null, null); und verwenden Sie dann den Cursor, um die Zeile zu erhalten. –

+0

können Sie so versuchen .... if (c.getCount()> 0) { while (c.moveToNext()) { Zeichenfolge calory = c.getString (c.getColumnIndex ("Kalorien")); // diesen Wert zu einer Liste hinzufügen } // die Liste zurückgeben; } –

+0

Siehe hier ... https://developer.android.com/training/basics/data-storage/databases.html#ReadDbRow –

0

Setzen Sie die Werte in die Contentvalues, die Sie bereits erstellt haben.

values.put (columnname, value); 

aktualisieren Sie die Datenbank mit der Methode update wie folgt aus:

db.update ("tbltest", values, "WHERE uname = ?", new String []{c.getUname()}); 

P. S. Sie sollten den Konstruktor Contentvalues die Menge der Werte, die Sie wollen passieren

Verwandte Themen