2016-09-01 3 views
-4

Was bedeutet diese Zeile in meinem Code "id =?",new String[]{id}. Ich habe versucht, herauszufinden, im Internet, aber ich kann nicht scheinen, eine Antwort zu finden.Was bedeutet das "id =?"

public boolean updateData(String id,String name,String quantity,String category,String importance) { 

     SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(COL_1, id); 
    contentValues.put(COL_2, name); 
    contentValues.put(COL_3, quantity); 
    contentValues.put(COL_4, category); 
    contentValues.put(COL_5, importance); 
    Log.d("data","id="+id); 
    Log.d("name",name); 
    Log.d("quantity",quantity); 
    Log.d("category",category); 
    Log.d("importance",importance); 

    db.update(Table_Name,contentValues,"id =?",new String[]{id}); 
    return true; 
} 
+0

Haben Sie die Dokumentation zur Android-API für 'SQLiteDatabase.update' gelesen? –

+0

Mögliches Duplikat von [String \ [\] whereArgs Parameter der Datenbankmethode in android] (http://stackoverflow.com/questions/4560212/string-whereargs-parameter-of-database-method-in-android) –

+0

Es ist ein Platzhalter für einen gebundenen Parameter. Es ist positional, was bedeutet, dass der erste übergebene Parameter das erste Vorkommen von '?' Ersetzt –

Antwort

1

Dies sind in der Tat zwei verschiedene Argumente für die Funktion SQLiteDatabase.update. Der erste ("id =?") Ist eine Aktualisierungsbedingung. Diese Bedingung filtert Zeilen, die nach bestimmten Kriterien aktualisiert werden sollen, in diesem Fall nach Spalten-ID. Das Fragezeichen wird später durch ein Argument im nächsten Parameter ersetzt, der ein Array von String-Objekten definiert, die zum Ersetzen der Platzhalter (in diesem Fall Fragezeichen) verwendet werden sollen.