Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Visual Basic .Net] - Navigare tra i risultati di una query (con ADO)
Forum - C# / VB.NET - [Visual Basic .Net] - Navigare tra i risultati di una query (con ADO)

Avatar
Ture_70 (Normal User)
Rookie


Messaggi: 30
Iscritto: 25/01/2009

Segnala al moderatore
Postato alle 16:21
Martedì, 08/02/2011
Buon giorno a tutti, sto da poco studiando il VB. net ed ho un problema:
Attraverso la mia applicazione popolo la tabella del database (senza problemi), il mio problema e la ricerca dei record. Mettiamo che io abbia una tabella del tipo:
| ID | NOME | COGNOME |
| 1  |   A      |     B         |
| 2  |   A     |      C         |

Se io, con un cormalissimo select... cerco tutti i record nel cui nome sia scritto "A" ottengo solo il 1° record. Io vorrei inserire nella mia applicazione 2 pulsanti (<;)  e (>;) che mi facciano navigare tra i record trovati dalla mia queri (con il select).
In questo piccolo caso, quindi, cliccando sul pulsante (>;) dovrei arrivare al 2° record.
Non ho però la minima idea di come fare, avete qualche esempio? o me lo potete spiegare?
Ringrazio in anticipo:hail:


Vorrei diventare un buo programmatore....magari
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1888
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:04
Martedì, 08/02/2011
Per fare quello che intendi e necessario avere un contatore,
che ti ricorda l'id del record che stai utilizzando in seguito premendo
>> aumenterà l'id di seguito esegui una nuova query mediante il nuovo ID, viceversa per <<

puoi farlo in questo modo.

Codice sorgente - presumibilmente C# / VB.NET

  1. select * from [nome_tabella] WHERE id = '[contatore]';



Cmq ti consiglio un modo diverso per fare questo.
seppur funzionante il tuo metodo e molto lento, perché ad ogni spostamento (>>;)
esegui una nuova query, quindi devi attendere la query dal server e questo può impiegare diverso tempo a seconda dei sistemi.

un modo migliore sarebbe quello di crearti una struttura ed una lista per velocizzare il tutto sfruttando ugualmente il contatore, così esegui la query una sola vota e hai tutti i dati a portata di mano.

ti scrivo un esempio in C# perché non conosco molto bene il vb.net
puoi covertire il codice da C# a vb.net andando qui

http://www.developerfusion.com/tools/convert/csharp-to-vb/


Codice sorgente - presumibilmente C#

  1. //Struttra della Tabella
  2.  
  3. public struct Tabella {
  4.  
  5. public int ID;
  6. public string Nome;
  7. public string Congome;
  8.  
  9. }
  10.  
  11.  
  12. //lista
  13. public List<Tabella> tb = new List<Tabella>();
  14.  
  15.  
  16. //-----
  17. //ciclo che inserisci i dati della query nella lista,
  18.  
  19.  
  20. rd = cmd.ExecuteReader();
  21.  
  22. while(rd.Read) {
  23.  
  24. Tabella t;
  25. t.id = rd[0].ToString();
  26. t.Nome = rd[1].ToString();
  27. t.Congnome = rd[2].ToString();
  28.  
  29. tb.Add(t);
  30.  
  31. }



per spostarti tra i valori

Codice sorgente - presumibilmente C++

  1. //Contatore Pubblico;
  2. public int Counter = 0;
  3.  
  4. //pusalte >>
  5.  
  6. void Next() {
  7. Counter+=1;
  8. MessageBox.Show(tb[Counter].ID + "\n" + tb[Counter].Nome + "\n" + tb[Counter].Cognome);
  9.  
  10. }
  11.  
  12.  
  13. //pulsante <<
  14. void Back() {
  15. Counter-=1;
  16. MessageBox.Show(tb[Counter].ID + "\n" + tb[Counter].Nome + "\n" + tb[Counter].Cognome);
  17. }



una volta che la lista non ti servirà più potrai svutarla e liberarla dalle risorse.



PM Quote
Avatar
Ture_70 (Normal User)
Rookie


Messaggi: 30
Iscritto: 25/01/2009

Segnala al moderatore
Postato alle 21:47
Martedì, 08/02/2011
Innanzi tutto ti ringrazio per avermi risposto. Ora faccio alcune prove, sia con il contatore che con il contatore + tabella....ti faccio sapere, grazie ancora


Vorrei diventare un buo programmatore....magari
PM Quote