Autore Topic: Commando UPDATE errore the bind value at index 1 is null  (Letto 508 volte)

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Commando UPDATE errore the bind value at index 1 is null
« il: 31 Maggio 2011, 16:06:42 CEST »
0
cosa sto sbagliando???

codice:
Codice (Java): [Seleziona]
       
                        DatabaseHelper databaseHelper = new DatabaseHelper(this);
                        final SQLiteDatabase db = databaseHelper.getWritableDatabase();

                        String sql;
                        sql=" UPDATE auto SET  id_cliente='0', id_magazzino='1' where targa="+targa+" ";
                        db.execSQL(sql);
errore:
Codice: [Seleziona]
05-31 13:53:25.312: ERROR/AndroidRuntime(296): Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #1 il: 31 Maggio 2011, 16:58:58 CEST »
+1
Puoi sempre usare i metodi che ti offre android:
Codice (Java): [Seleziona]
ContentValues data = new ContentValues();                          
data.put("id_cliente", 0);
data.put("id_magazzino", 1);
String where = "targa=?";
String[] whereArgs = {targa};
db.update("auto", data, where, whereArgs);

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #2 il: 31 Maggio 2011, 17:05:27 CEST »
0
Puoi sempre usare i metodi che ti offre android:
Codice (Java): [Seleziona]
ContentValues data = new ContentValues();                          
data.put("id_cliente", 0);
data.put("id_magazzino", 1);
String where = "targa=?";
String[] whereArgs = {targa};
db.update("auto", data, where, whereArgs);

Vorrei usare un metodo che sia più similare a SQLite visto che sto imparando e onestamente visto cosi non avrei mai capito che cosa succede dal lato dei comandi SQL ho già usato quel metodo con INSERT ... ma non mi piace tanto ripeto solo da un punto di vista di apprendimento! Sto usando per le SELECT solo rawquery con il quale mi trovo molto meglio :) sono un NIUBBO.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #3 il: 31 Maggio 2011, 17:08:38 CEST »
+1
Ok, allora metti a posto la query in questo modo:
Codice (Java): [Seleziona]
sql="UPDATE auto SET  id_cliente=0, id_magazzino=1 where targa=\""+targa+"\"";

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #4 il: 31 Maggio 2011, 17:12:04 CEST »
0
Ok, allora metti a posto la query in questo modo:
Codice (Java): [Seleziona]
sql="UPDATE auto SET  id_cliente=0, id_magazzino=1 where targa=\""+targa+"\"";

Spero possa farti questa domanda stupida ..... Dove hai trovato questo metodo ?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #5 il: 31 Maggio 2011, 17:18:19 CEST »
+1
Spero possa farti questa domanda stupida ..... Dove hai trovato questo metodo ?

Che metodo? è normale Java...

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #6 il: 31 Maggio 2011, 17:24:01 CEST »
0
tu ha fatto:
Codice (Java): [Seleziona]
............where targa=\""+targa+"\"
io per poter usare selectionArgs più una mia stringa ho fatto cosi:
Codice (Java): [Seleziona]
..........WHERE "+idselezionearray+" LIKE ?";
perchè a me questo funziona?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #7 il: 31 Maggio 2011, 17:32:04 CEST »
+1
Perchè in quel caso i doppi apici vengono aggiunti automaticamente dai metodi che creano la query sql, ma se la scrivi tu a mano glieli devi mettere.

La query che facevi tu era:

Codice: [Seleziona]
UPDATE auto SET  id_cliente='0', id_magazzino='1' where targa=ilvaloredellatarga";

invece secondo me dovrebbe essere:

Codice: [Seleziona]
UPDATE auto SET  id_cliente=0, id_magazzino=1 where targa="ilvaloredellatarga"

perchè gli interi non necessitano di avere gli apici mentre le stringhe necessitano dei doppi apici.

Spero di essere stato chiaro.

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #8 il: 31 Maggio 2011, 17:44:05 CEST »
0
Codice (Java): [Seleziona]
intent.putExtra("idselezionearray", "indirizzo"); non è un intero, è una stringa! Per quello te l'ho chiesto :)

Codice: [Seleziona]
UPDATE auto SET  id_cliente='0', id_magazzino='1' where targa=dg345th
Codice: [Seleziona]
UPDATE auto SET  id_cliente='33', id_magazzino='0' where targa='dg345th' OR targa='gg865th' OR targa='bgyu5th'
io provo prima con un programma per le comandi SQLite se funziona li poi va pure su android!
gli apici li uso solo se devo usare un operatore altrimenti non funziona!
strana sta cosa comunque grazie della tua disponibilità.
« Ultima modifica: 31 Maggio 2011, 17:45:52 CEST da DarkPhoinix »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #9 il: 31 Maggio 2011, 18:01:19 CEST »
+1
Codice (Java): [Seleziona]
intent.putExtra("idselezionearray", "indirizzo"); non è un intero, è una stringa! Per quello te l'ho chiesto :)

Codice: [Seleziona]
UPDATE auto SET  id_cliente='0', id_magazzino='1' where targa=dg345th
Codice: [Seleziona]
UPDATE auto SET  id_cliente='33', id_magazzino='0' where targa='dg345th' OR targa='gg865th' OR targa='bgyu5th'
io provo prima con un programma per le comandi SQLite se funziona li poi va pure su android!
gli apici li uso solo se devo usare un operatore altrimenti non funziona!
strana sta cosa comunque grazie della tua disponibilità.

Mai avuto problemi in tal senso. Inoltre si tratta della sintassi standard SQL.
Comunque piuttosto di usare gli OR in quel modo guarda l'operatore IN.

Offline DarkPhoinix

  • Utente junior
  • **
  • Post: 133
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2 & Samsung Galaxy SII
  • Sistema operativo:
    LNX
Re:Commando UPDATE errore the bind value at index 1 is null
« Risposta #10 il: 31 Maggio 2011, 18:04:59 CEST »
0
Comunque piuttosto di usare gli OR in quel modo guarda l'operatore IN.

Niubbissimo ricordi? :) fammi un esempio pratico io IN lo uso solo per controllare dentro le tabelle!
Es.:
Codice: [Seleziona]
SELECT * FROM auto where  _id  IN(SELECT id_auto FROM datain where id_cliente = 1)