2011-01-16 6 views
2

Zum Beispiel habe ich vier Spalten: first_name, last_name, phone_number und picture. Irgendwo in meinem Code gibt es:Aktualisieren Sie das Element in der Datenbank ohne alle in ContentValues ​​festgelegten Spalten.

ContentValues values = new ContentValues(); 
values.put(MyPerson.FIRST_NAME, "Ted"); 
values.put(MyPerson.LAST_NAME, "Johnson"); 
values.put(MyPerson.PHONE_NUMBER, "111-111-1111"); 
values.put(MyPerson.PICTURE, "file://tedpicture.jpeg"); 

getContentResolver().update(tedUri, values, null, null); 

Könnte ich laufen so etwas wie:

ContentValues values = new ContentValues(); 
values.put(MyPerson.PHONE_NUMBER, "222-222-2222"); 

getContentResolver().update(tedUri, values, null, null); 

und erwarten, dass die first_name, last_name und picture Spalten die gleichen Werte wie haben, wenn ich setzte sie zuerst. Oder muss ich auch die Spalten first_name, last_name und picture auffüllen?

Antwort

8

Um Ihre Frage zu beantworten, ja, Sie können nur ein Datenfeld an das Update übergeben und es wird diese Spalte aktualisieren, ohne andere zu beeinträchtigen.

Das Problem, das Sie derzeit haben, ist, dass Sie der DB nicht sagen, welche Aufzeichnung Sie aktualisieren möchten.

Gemäß der Update-Methode:

public int update (String table, ContentValues values, String whereClause, String[] whereArgs)

Sie passieren null für die, wo ein Teil des Verfahrens.

Wenn Sie einen where-Teil an die Methode übergeben, werden nur die spezifischen Einträge aktualisiert.

ContentValues values = new ContentValues(); 
values.put(MyPerson.PHONE_NUMBER, "222-222-2222"); 
getContentResolver().update(tedUri, values, "first_name = ?", new String[] { "tom" }); 

Würde aktualisieren jemand mit dem Vornamen tom um die Telefonnummer haben 222-222-2222

0

Das würde genau so funktionieren, wie Sie beschrieben haben, nur die eingestellten Werte werden aktualisiert.

0

können Sie festlegen, wo Klausel in Update-Funktion 3. Parameter

getContentResolver().update(tedUri, values, "first_name=?", new String 
     [ ]{"name"}); 
Verwandte Themen