Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: tornu - 09 Marzo 2010, 22:53:53

Titolo: [RISOLTO] For...Next
Inserito da: tornu - 09 Marzo 2010, 22:53:53
Eccomi di nuovo con i miei soliti problemi (ultimamente mi succede spesso  :(, abbiate pazienza)
di utilizzo del FOR...NEXT

Con questo codice
Codice: [Seleziona]
PUBLIC SUB test()
  DIM r AS Integer
  DIM xResult as Result

  FOR r = 0 TO GridView.Rows.Count - 1
    xResult = Conn.db.Edit("tabella", "campo1 = '" & TextBox.Text & "'")
    xResult["campo2"] = GridView[r, 1].Text
    xResult["campo3"] = 'pippo'
    xResult.Update
    Conn.db.Commit
  NEXT
END
succede che nel "campo2" viene aggiornato lo stesso dato per quante sono le righe della colonna 1
(le righe della GridView contengono dati diversi), esattamente il dato contenuto nell'ultima riga.
Come caspita faccio a far sì che vengano aggiornati i dati del "campo2" con i dati contenuti nelle righe della colonna 1?
Titolo: Re: For...Next
Inserito da: fsurfing - 09 Marzo 2010, 23:03:09
Citazione
succede che nel "campo2" viene aggiornato lo stesso dato per quante sono le righe della colonna 1
(le righe della GridView contengono dati diversi), esattamente il dato contenuto nell'ultima riga.
Come caspita faccio a far sì che vengano aggiornati i dati del "campo2" con i dati contenuti nelle righe della colonna 1?
infatti è esattamente quello che hai detto di fare al codice :)
cosa volevi realizzare?
Titolo: Re: For...Next
Inserito da: tornu - 09 Marzo 2010, 23:25:31
No fsurfing,
io volevo ottenere che la GridView se contiene cinque righe nella colonna 1 (tutti valori diversi per esempio: A, B, C, D, E ) mi aggiorni "campo2" con i valori contenuti nelle righe, e non cinque record tutti con il valore E (ultimo valore della GridView), come succede col codice che ho postato.
Titolo: Re: For...Next
Inserito da: fsurfing - 09 Marzo 2010, 23:26:58
prova con un :
Codice: [Seleziona]
PUBLIC SUB test()
  DIM r AS Integer
  DIM xResult as Result
xResult = Conn.db.Edit("tabella", "campo1 = '" & TextBox.Text & "'")
xresult.movefirst
  FOR r = 0 TO GridView.Rows.Count - 1
    
    xResult["campo2"] = GridView[r, 1].Text
    xResult["campo3"] = 'pippo'
    xResult.Update
    Conn.db.Commit
    if r<gridview.rows.count-1 then xresult.movenext


  NEXT
Titolo: Re: For...Next
Inserito da: fsurfing - 09 Marzo 2010, 23:27:56
cmq il codice funziona correttamente solo se sia la grid che il result hanno lo stesso numero di righe
Titolo: Re: For...Next
Inserito da: fsurfing - 09 Marzo 2010, 23:31:18
Citazione
io volevo ottenere che la GridView se contiene cinque righe nella colonna 1 (tutti valori diversi per esempio: A, B, C, D, E ) mi aggiorni "campo2" con i valori contenuti nelle righe, e non cinque record tutti con il valore E (ultimo valore della GridView), come succede col codice che ho postato.

cioè nel db vuoi che ogni campo contenga il valore di una riga della grid o vuoi che nel db tutti i campo 2 della query contengano  tutti i valori della colonna 1 della grid?
Titolo: Re: For...Next
Inserito da: tornu - 09 Marzo 2010, 23:35:42
R I S O L T O !!!!
sei grande fsurfing  :D :D
grazie
Titolo: Re: For...Next
Inserito da: fsurfing - 09 Marzo 2010, 23:36:32
Citazione
sei grande fsurfing  Felice Felice
diglielo a ceskho che non ci crede! ;D
Titolo: Re: For...Next
Inserito da: tornu - 09 Marzo 2010, 23:39:52
Citazione
diglielo a ceskho che non ci crede! ;D

ho sempre detto che sei un genio incompreso  ;)
Titolo: Re: For...Next
Inserito da: Ceskho - 10 Marzo 2010, 00:37:39
Citazione
diglielo a ceskho che non ci crede! ;D

ho sempre detto che sei un genio incompreso  ;)

Ora i pazzi sul forum sono due...a chi dei due evidenzio prima per poi premere BAN????? :P