Buona sera a tutti,
ho un problema su cui sto combattendo da qualche giorno, ed il mio accanimento sicuramente mi sta impedendo di trovare la soluzione, a questo punto ho deciso di postare.
Ho una GridView che viene popolata secondo la neccessità da dei dati letti da un DB
PUBLIC SUB Button1_Click()
DIM i AS Integer
DIM xResult AS Result
xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")
GridView1.Rows.Count = xResult.Count
FOR EACH xResult
i = xResult.Index
GridView1[i, 0].Text = xResult["dato1"]
GridView1[i, 1].Text = xResult["dato2"]
GridView1[i, 2].Text = xResult["dato3"]
NEXT
GridView1.Row = 0
END
inserendo manualmente i dati da delle TextBox
PUBLIC SUB Button2_Click()
DIM i AS Integer
GridView1.Rows.Count += 1
i = GridView1.Rows.Count - 1
GridView1[i, 0].Text = TextBox1.Text
GridView1[i, 1].Text = TextBox2.Text
GridView1[i, 2].Text = TextBox3.Text
END
o utilizzando entrambi le funzioni, ed è in questo caso che si presenta il problema.
Quando inserisco prima dei dati tramite Button2 e poi accodo altri dati con Button1 i dati precedentemente inseriti vengono "sovrascritti" dai dati del DB, se eseguo l'operazione inversa popolando prima la GridView con i dati del DB (Button1) e successivamente inserisco ulteriori dati con Button2 gli accoda senza problemi. :muro:
la soluzione è molto semplice:
PUBLIC SUB Button1_Click()
DIM i AS Integer
DIM xResult AS Result
xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")
GridView1.Rows.Count = xResult.Count
FOR EACH xResult
i = xResult.Index
GridView1[i, 0].Text = xResult["dato1"]
GridView1[i, 1].Text = xResult["dato2"]
GridView1[i, 2].Text = xResult["dato3"]
inc i
NEXT
GridView1.Row = 0
END
inc i
'' aumenta il contatore, necessario se si usa for each xresul invece di for i= 0 to xresul.count-1
a ok capito
basta che fai cosi credoprova coì:
PUBLIC SUB Button1_Click()
DIM i AS Integer
DIM xResult AS Result
xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")
i= GridView1.Rows.Count
GridView1.Rows.Count = xResult.Count + i
FOR each xResult
GridView1[i, 0].Text = xResult["dato1"]
GridView1[i, 1].Text = xResult["dato2"]
GridView1[i, 2].Text = xResult["dato3"]
inc i
NEXT
GridView1.Row = 0
END
cavolo questa domanda da te non me l' aspettavo!
GridView1.Mode=select.single
'oppure
gridview1.mode=select.none
'oppure
gridview1.mode=select.multiple
proprio come nella "fornitissima" guida di gambas :)