Autore Topic: Update di un record di un database  (Letto 1365 volte)

Offline neo

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Update di un record di un database
« il: 13 Dicembre 2011, 23:28:24 CET »
0
Salve,
come da titolo ho un problema con l'aggiornamento di un record di un data base.

Codice (Java): [Seleziona]
 public void updateSpesa(SQLiteDatabase db,String newOggetto,String oldOggetto,float Prezzo,int id){      
        ContentValues v = new ContentValues();    
         
        v.put(KEY_OGGETTO, newOggetto);
        v.put(KEY_PREZZO, Prezzo);

        String[] where_args={oldOggetto,String.valueOf(id)};
       
        db.update(KEY_TABLE_SPESE, v, KEY_OGGETTO+"=?"+"AND"+KEY_ROWID+"'=?'", where_args);

    }

Il logcat mi ritorna
Codice: [Seleziona]
E/AndroidRuntime(  593): android.database.sqlite.SQLiteException: near "'=?'": syntax error: , while compiling: UPDATE spese
SET Oggetto=?, Prezzo=? WHERE _id'=?'

Il problema sicuramente è come creo la stringa del campo WHERE del metodo update.
Se metto solo KEY_OGGETTO+"=?" e quindi  String[] where_args={oldOggetto}; tutto funziona correttamente. Ma vorrei anche controllare che l'id della row che vado ad aggiornare sia anche uguale a quello che io ho selezionato nella mia lsitview.
Come potrei risolvere?

Grazie anticipatamente =)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Update di un record di un database
« Risposta #1 il: 14 Dicembre 2011, 13:47:48 CET »
0
Perchè hai messo gli apici in "'=?'" ?

Offline neo

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
R: Update di un record di un database
« Risposta #2 il: 14 Dicembre 2011, 16:32:12 CET »
0
Perchè da un altra parte avevo visto che ce li metteva. Cmq ho provatovanche senza, ma senza risolvere >:(

Inviato dal mio GT-I9000 usando Tapatalk

Offline mancasal

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S i9000
  • Sistema operativo:
    Linux
Re:Update di un record di un database
« Risposta #3 il: 25 Luglio 2012, 23:21:30 CEST »
+1
Prova cosi.

Codice: [Seleziona]
String where_clause = KEY_OGGETTO + " = ? AND " + KEY_ROWID +" = ?"
String[] where_args={oldOggetto,String.valueOf(id)};

db.update(KEY_TABLE_SPESE, v, where_clause, where_args);