Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - AIUTO  PER UNA RICERCA DI UN NOMINATIVO SU RUBRICA TELEFONICA
Forum - C# / VB.NET - AIUTO PER UNA RICERCA DI UN NOMINATIVO SU RUBRICA TELEFONICA

Avatar
alexgiova1 (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/03/2008

Segnala al moderatore
Postato alle 23:24
Sabato, 07/02/2009
CIAO A TUTTI,

sono alle prese con visual basic 2008

il mio intento è quello di far funzionare con un pulsante cerca  di un nominativo in una rubrica telefonica collegata col database access.
nel datanase access cè una tabella con i campi nome , cognome, email.

diciamo che non riesco a trovare il codice corretto per fare una ricerca di un nuominativo.

mi serve un esempio il piu' semplice possibile.
confido in un vostro aiuto Grazzzie mille ciao by ALessandro  

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2183
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 0:11
Domenica, 08/02/2009
Basta eseguire un while sulla tabella interessata

guardando la tabella interessata
ti conti le colonne.
partendo dalla prima che vale zero.
se esempio il cognome è la seconda colonna
equivale al numero 1.

quindi.

Codice sorgente - presumibilmente VB.NET

  1. sql = "SELECT * FROM nominativi"
  2. cmd = New OleDbCommand(sql, Cn)
  3. rs = cmd.ExecuteReader
  4.  
  5.  
  6. dim nomedacercare as string = textbox1.text
  7.  
  8. while rs.read()
  9.  
  10.  
  11. if rs.item(1) = nomedacercare Then
  12.  
  13. 'nominativo trovato
  14.  
  15. end if
  16.  
  17.  
  18. end while


Ultima modifica effettuata da Thejuster il 08/02/2009 alle 0:12


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:04
Domenica, 08/02/2009
Oppure usare una query con già inclusa la condizione:
Codice sorgente - presumibilmente C# / VB.NET

  1. SELECT * FROM nominativi WHERE nome = '...'


Oppure puoi anche usare Linq se e solo se il database è collegato a un dataset:
Codice sorgente - presumibilmente VB.NET

  1. Dim Nomi = From Riga As DataSet.Nominativi.RigaNomivativi In DataSet.Nominativi _
  2.     Where Riga.Nome = "..." _
  3.     Select Riga


PM Quote
Avatar
alexgiova1 (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/03/2008

Segnala al moderatore
Postato alle 14:03
Domenica, 08/02/2009
vi ringrazio per l'aiuto
ma non mi funziona


vi allego il file dela mia rubrica

mi interessava che come viene premuto il pusante cerca per cognome veniva una inpputbox che chidedeva inserisci il cognome da cercare. e dopoo visualizzava sulle 3 textbox  i dati relativi al cognome.


alexgiova1 ha allegato un file: rubrica.zip (308272 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 23:37
Domenica, 08/02/2009
Potresti usare il Filter del bindinsource e poi prelevarne i valori dei campi eseguendo un directcast sul Bindinsource.current in questo modo

Codice sorgente - presumibilmente Plain Text

  1. bindingsourceRubrica.filter="Cognome='Rossi'"
  2.  
  3. tuatextboxnumerotelefono.text=directcast(bindingsourceRubrica.current,datarowview).Row("Telefono").tostring



Facci sapere..
Ciao

PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 11:03
Lunedì, 09/02/2009
DB access non li conosco molto..
cmq in teoria dovresti far fare la ricerca alla parte SQL il linguaggio è T-SQL quindi dovrebbe essere molto simile a SQL Server...

Definisci i parametri di ricerca ad esempio A,B per nome e cognome, poi costruisci la query in base alla selettività che vuoi dare alla tua ricerca LIKE cerca le stringhe che contengono quella determinata combinazione di caratteri...oppure un = per cercare la riga con il campo che corrisponde esattamente alla parola che hai inserito, fai attenzione se hai un database case sensitive

SELECT [Cognome], [Nome],ecc....
FROM [NomeTabella]
WHERE (nome LIKE A) OR (cognome LIKE B)



P.S: ti consiglio di sistemare cmq l'interfaccia con degli oggetti più comprensibili per gli utenti
magari un datagrid per visualizzare la lista dei nominativi

PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 11:06
Lunedì, 09/02/2009
Testo quotato

Postato originariamente da Thejuster:

Basta eseguire un while sulla tabella interessata

guardando la tabella interessata
ti conti le colonne.
partendo dalla prima che vale zero.
se esempio il cognome è la seconda colonna
equivale al numero 1.

quindi.

Codice sorgente - presumibilmente VB.NET

  1. sql = "SELECT * FROM nominativi"
  2. cmd = New OleDbCommand(sql, Cn)
  3. rs = cmd.ExecuteReader
  4.  
  5.  
  6. dim nomedacercare as string = textbox1.text
  7.  
  8. while rs.read()
  9.  
  10.  
  11. if rs.item(1) = nomedacercare Then
  12.  
  13. 'nominativo trovato
  14.  
  15. end if
  16.  
  17.  
  18. end while



non ha senso fare un while quando hai una funzione che scorre già tutte le righe a monte...

PM Quote