Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Funzione "cerca" per datagrid
mercoledì 09 novembre 2005 - 08.30
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Netrulez
Profilo
| Newbie
6
messaggi | Data Invio:
mer 9 nov 2005 - 08:30
Ciao a tutti,
come già detto in un'altro post, sono nuovo nuovo, sia di .net che di dotnethell..
Sto "smanettando" con visual studio .net 2003, e devo dire che mi sta intrigando parecchio. Ho comprato e divorato più manuali sull'argomento, leggo da un po il vostro forum e vari tutorial trovati in rete.
Ora però ho deciso che è il momento di passare da passivo ad attivo.... quindi posto! :-)
Durante i miei esperimenti ho connesso un db access ad un'applicazione vb.net, e fin qui "tutto bene", ora vorrei sapere come è possibile integrare una funzione di ricerca sul db nel mio form.
Mi volete aiutare?
Ciauz
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 9 nov 2005 - 12:35
>Ciao a tutti,
>come già detto in un'altro post, sono nuovo nuovo, sia di .net
>che di dotnethell..
Ciao e benvenuto :D
>Durante i miei esperimenti ho connesso un db access ad un'applicazione
>vb.net, e fin qui "tutto bene", ora vorrei sapere come è possibile
> integrare una funzione di ricerca sul db nel mio form.
Allora non dovrebbe essere una cosa molto complessa. Se hai un po' di dimestichezza con le classie OleDb.* dovresti riuscire. Direi che i passi fondamentali da seguire sono:
- Connessione al DB
- Invio di Query e conseguente recupero dei dati in un DataSet
- Chiusura Connessione
- Bind del DataSet alla datagrid
Per fare questo in una Form avrai bisogno di una Textbox per inserire i termini da ricercare e una DataGrid e un button per avviare la ricerca.
La ricerca poi la puoi implementare come vuoi, se hai un campo Titolo relativo a libri di una biblioteca puoi creare una query del tipo:
"SELECT * FROM Libri WHERE Title = '*mela*'"
Questo troverà tutti i record che abbiano all'interno del titolo la parola "mela".
Per lanciare questa query e recuperare i dati puoi farlo con un OleDbDataAdapter:
//Apertura connessione
Dim da as OleDbDataAdapter
Dim ds as DataSet
ds=new DataSet()
Dim strsql as string
strsql="SELECT * FROM Libri WHERE Title = '*mela*'"
da=new OleDbDataAdapter(strsql,connessione_aperta)
da.Fill(ds)
//chiusura connessione
alla fine assegni i risultati alla datagrid:
DataGrid1.DataSource=ds.Tables(0)
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
H2MARON
Profilo
| Junior Member
161
messaggi | Data Invio:
mer 9 nov 2005 - 12:36
Puoi essere un po più chiaro...?!
Io di istinto ti direi di cambiare l'sql a seconda del valore della tua text box di ricerca...
ma non ho ben capito cosa vuoi fare...
ciao
Netrulez
Profilo
| Newbie
6
messaggi | Data Invio:
mer 9 nov 2005 - 14:56
Grazie a entrambi per le risposte ma... non ho capito granchè dato che sono alle prime armi.
Brainkiller, quando tu dici:
Questo troverà tutti i record che abbiano all'interno del titolo la parola "mela".
Per quel che ho capito cosi potrei ricercare sempre e solo i risultati per "mela", giusto?
Quello che vorrei imparare io è: campo di testo vuoto dove posso inserire la stringa di ricerca e un pulsante tipo "avvia ricerca". Il tutto mi dovrebbe restituire un risultato..
H2MARON, è questo che intendi tu?
Ho provato a leggermi e rileggermi la documentazione contenuta nell'sdk del framework 1.1 ma... sob...
Vi prego di aver pazienza con me ragazzi.. :-(
Grazie
ysdemarc
Profilo
| Expert
587
messaggi | Data Invio:
gio 10 nov 2005 - 18:14
Forse dovresti rileggere più attentamente l'esempio postato da Braiankiller.
Naturalmente l'esecuzione della query la devi fare all'evento click del pulsante di comando.
Se poi vuoi un solo risultato è necessario che il campo che ti digitano sia univoco e a quel punto non dovrebbero essere necessari i caratteri jolly nella query (ma una cosa del genere non so quanto possa essere utile).
Infine se vuoi solo il primo record che soddisfi i tuoi criteri di ricerca basta modificare la query in
strsql="SELECT TOP 1 * FROM Libri WHERE Title = '%mela%'"
e di da la prima occorrenza trovata (Anche se credo di aver compreso male altrimenti non si spiegherebbe l'uso della DataGrid).
Naturalmente mela è quello che l'utente ha digitato nella tua textbox.
Domanda per Braiankiller:
hai scritto la seguente query strsql="SELECT * FROM Libri WHERE Title = '*mela*'"
ma gli * hanno le stesse funzioni di %?
Ho provato in sqlserver a mettere * al posto del % ma non ottengo nulla...
Vincenzo
Programmatore sbilenco :-D
ApatiaMax
Profilo
| Newbie
6
messaggi | Data Invio:
lun 12 feb 2007 - 16:57
eeehhh ma la cosa curiosa e' che se tu fai usi access allora devi mettere * l'asterisco
pero' se usi access, ma fai una query direttamente da VS allora devi usare %
..
io ho fatto una query parametrica direttamente da dentro access, perche' suppongo che sia piu' veloce il motore di access rispetto alle interrogazioni fatte attraverso vb.net...
insomma.. tutta la mattina a tirar giu' i santi con sta query che non veniva...
SELECT from utenti WHERE (((utenti.nome) Like [?] + "%"));
oviamente al posto di % ci andava *.... ma VS anche se usa database access, mdb non vuole * ma %
.. ho fatto un po' di casino, ma spero di avervi delucidato un po' sui carattery jolly
ps.
come si usano le query parametriche con i dataset ?
cioe' partendo dal presupposto che con una query parametrica non posso fare un'interrogazione sql, soppongo che dovrei fare la connessione alla mia tabella e quindi passare il parametro necessario alla query
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !