2016-06-04 13 views
-1

Ich habe Probleme beim Aktualisieren einer Zeile in SQlite.SQLite Android aktualisieren eine bestimmte Zeile

Ich möchte die Zeile "name" mit jemandem mit dem Namen1 aktualisieren und es in Bob umbenennen. Ich mag auch Zeile „Alter“ mit jemandem aktualisieren, den 5.

ContentValues cv = new ContentValues(); 
    cv.put("age", "bob"); 
    cv.put("name", "2"); 
    database.update("tblTest1", cv, "name", null); 

    cursor = database.rawQuery("select age,name from tblTest1", null); 
    displayAllInCursor(cursor); 

ist, wenn ich laufe dies der Rest des Programms funktioniert gut. Im Logcat wird folgende Meldung angezeigt:

I/Choreograph: 39 Frames übersprungen! Die Anwendung führt möglicherweise zu viel Arbeit an ihrem Hauptthread aus.

Auch ich bin mir nicht sicher, wie ein Löschen mit ContentValues ​​erstellt wird. Jede Hilfe wird groß sein. Danke in fortgeschrittenem.

+1

Für die Log-Nachricht finden Sie http://stackoverflow.com/questions/14678593/the-application-may-be-doing-too-much-work-on-its-main-thread –

+0

Wrap Ihre Datenbank ruft eine AsyncTask auf. Die Nachricht warnt Sie, dass etwas zu viel Zeit im UIhread benötigt - Sie sollten versuchen, es im Leerlauf zu halten. Wenn es eine Chance gibt, dass etwas einen oder zwei Momente braucht, benutze einen separaten Thread. – trooper

Antwort

1

Sie aktualisieren nur where-Klausel.

String where = "name ='name1'OR age = 5" ; 
    ContentValues cv = new ContentValues(); 
     cv.put("age", "bob"); 
     cv.put("name", "2"); 
     database.update("tblTest1", cv, where, null); 

     cursor = database.rawQuery("select age,name from tblTest1", null); 
     displayAllInCursor(cursor); 
+0

bitte markieren Sie es akzeptiert – USKMobility

-1

tun es auf diese Weise:

String[] args = new String[]{yourVariableName}; //this is for the condition 
database.execSQL("UPDATE " + TABLENAME + " SET colum1Name='" + variable1 + "', column2Name='"+variable2+"' WHERE id=?", args);//replace id for your condition 
Toast.makeText(getBaseContext(), "database updated!", Toast.LENGTH_LONG).show(); 
+0

Es ist nichts falsch mit der 'db.update' Methode, nur die Bedingung muss korrekt sein –