Autore Topic: Modifica dati in un Database  (Letto 859 volte)

Offline deideidei

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 11.04
Modifica dati in un Database
« il: 07 Dicembre 2011, 12:23:11 CET »
0
Ciao ragazzi, arrivo al nuovo problema, ho sempre una lista nella quale visualizzo alcuni dati che ho inserito in un DB , al click dell'item posso cancellare quei dati o modificarli, per la cancellazione no problem, per la modifica dovrei andare nell'activity simile a quella dell'inserimento dati e caricare già i dati che ho selezionato nella lista precedente nei vai edit text o text view, sfruttando il'id dei dati nel database. Come faccio?
Immagino che dovrei accedere all'activity modifica inresimento tramite
Codice (Java): [Seleziona]
                        Intent mod = new Intent(getApplicationContext(), Modifica.class);
                        startActivityForResult(mod, item_id);
dove item_id è l'id corrispondente ai dati selezionati per la modifica.
Come faccio a utilizzare i dati del database nell'activity modifica settando gia i vari elementi in dase all'id che passo ?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Modifica dati in un Database
« Risposta #1 il: 07 Dicembre 2011, 15:03:34 CET »
+1
Hai 2 possibilità secondo me:
1)Passare l'id della record all'activity di modifica usando il metodo putextra dell'intent (su questo c'è un tutorial 'passare dati tra activity)
Poi usare un query di select per caricarti il record interessato nelle varie edittext,con un pulsante salva che non farà altro che fare un update sul record da salvare passandogli i dati nelle edittext.

2)Ti crei una classe crud che rispecchia la tabella(perciò ad ogni campo crei una proprietà nella classe, poi ti generi i metodi,Insert,Delete, Select,Update.
Poi da qualsiasi parte vuoi puoi instanziarla ed usarla a piacimento.

Io uso sempre o quasi la seconda opzione.
Ovviamente attendiamo anche altre idee.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline deideidei

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 11.04
Re:Modifica dati in un Database
« Risposta #2 il: 09 Dicembre 2011, 11:16:51 CET »
0
Grazie  :-)
hai degli esempi per il secondo metodo ?

Offline deideidei

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 11.04
Re:Modifica dati in un Database
« Risposta #3 il: 09 Dicembre 2011, 16:07:02 CET »
0
ok, riesco a passare l'id con il primo metodo, ma come faccio a visualizzare i dati relativi a quell'id nel DB , nelle edit text presenti per poi modificarle?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Modifica dati in un Database
« Risposta #4 il: 09 Dicembre 2011, 16:22:32 CET »
0
Adesso non riesco a fornirti esempi,ma se cerchi su google con parole chiavi tipo "sqlite android" oppure "sqlite view record in textview"...ecc chi ne ha più ne metta ,trovi un sacco si informazioni utili.
Inoltre se non sbaglio nei tutorial di anddev nella sezione database trovi informazioni utili.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline deideidei

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 11.04
Re:Modifica dati in un Database
« Risposta #5 il: 09 Dicembre 2011, 18:59:55 CET »
0
Ho trovato solo metodi che mi fanno settare il testo o altro di tutti gli elementi del database, però caricare solo gli elementi di un id che so, come faccio?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Modifica dati in un Database
« Risposta #6 il: 09 Dicembre 2011, 22:57:07 CET »
+1
Puoi fare così per l'aggiornamento,ovviamente devi metteri i tuoi dati ed i tuoi campi reali:
Codice: [Seleziona]
// apertura in scrittura
SQLiteDatabase db =mioDatabaseHelper.getWriteableDatabase();
// mappa dei valori da inserire
ContentValues values = new ContentValues();
// informazione da aggiornare
values.put("telefono", "12345555");
// clausola where
String whereClause = "id= 'TUO ID' ";
// ra è il numero di record aggiornati
int ra = db.update("rubrica",values,whereClause,null);
if (r==0) {
// errore!
db.close();
return;
}
// chiusura del database
db.close();

Così per fare la selezione di un record in base ad un id:
Codice: [Seleziona]
// Esecuzione di query SQL
SQLiteDatabase db =
mioDatabaseHelper.getReadableDatabase();
String[] columns = {"cognome"};
String selection = "id= ?";
String selectionArgs = {"TUO ID"};
String orderBy = "cognome ASC";
Cursor cursor = db.query("Tabella",columns, selection,
selectionArgs,null, null, orderBy);

//Ricordati che una select ritorna un cursore
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String nome = cursor.getString(1);
String cognome = cursor.getString(2);
String telefono = cursor.getString(3);
// fai qualcosa con i campi
}
db.close();

Spero che ti possa essere di aiuto, se hai dubbi chiedi
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline deideidei

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Ubuntu 11.04
Re:Modifica dati in un Database
« Risposta #7 il: 10 Dicembre 2011, 12:14:17 CET »
0
grazie mille Luigi, sempre molto di aiuto  :-)
Grazie!

Offline ilGiudicatore

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg p500
  • Sistema operativo:
    windows Xp, eclipse
Re:Modifica dati in un Database
« Risposta #8 il: 20 Gennaio 2012, 20:41:58 CET »
0
io avrei un problema nella cancellazione.. quando ho troppi record mi crasha l'app.. uso il seguente metodo:
 mDb.delete("coordinate",null, null);
quando ho pochi record tutto ok, quando ne ho più di 15 mi da errore.
PLEASE HELP MEEE!!!!!!!!!!!!!!!!!!!!!!!!!

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Modifica dati in un Database
« Risposta #9 il: 23 Gennaio 2012, 09:12:22 CET »
0
Posta il logcat dell'errore che ti restituisce.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline lorenzo-giudici

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Re:Modifica dati in un Database
« Risposta #10 il: 15 Aprile 2012, 15:03:07 CEST »
0
ok, riesco a passare l'id con il primo metodo, ma come faccio a visualizzare i dati relativi a quell'id nel DB , nelle edit text presenti per poi modificarle?

Come fai a passare l'id del record? o meglio, come fai a ottenerlo?
« Ultima modifica: 15 Aprile 2012, 15:57:19 CEST da lorenzo-giudici »