Creare un sistema di ricerca a più criteri

domenica 02 luglio 2006 - 17.50

Nicolaij Profilo | Newbie

Ciao a tutti.
Ecco il mio problema.

Creo una dropdownlist, diciamo con due voci: Cognome, Nome

Ci metto difianco una text box e infine un bottone di invio.

Voglio fare in modo che l'utente, scegliendo un criterio (nome o cognome) dalla dropdownlist e inserendo nella textbox una stringa, ottenga come risultato i record della relativa tabella (su db sqlserver) uguali o simili, inseriti in una gridview.

Tutto questo sfruttando possibilmente l'uso del dataset e databind.

Spulciando qua e la ho tirato fuori qualcosa del genere ( questo codice è legato all'evento di invio del bottone di submit, id=invia)


Dim query As String
Dim StingaConnessione As String
StingaConnessione = "Server=localhost;uid=id;pwd=1234;database=nomeDB"

Dim DsetDati = New DataSet
Dim cnSqlDb As SqlClient.SqlConnection

cnSqlDb = New SqlClient.SqlConnection(StingaConnessione)
cnSqlDb.Open()

Fino a qui nulla di strano, connetto al db e apro la connessione
Ora genero la parte della query che varia a seconda della selezione del criterio, dall'omonimo campo dropdownlist ( valore è invece il nome della textbox)

Select Case (criterio.Text)
Case "cognome
Dim where As String = "WHERE ([COGNOME] LIKE + valore + '%')"
Case "peso"
Dim where As String = "WHERE ([INDIRIZZO] LIKE + valore + '%')"
End Select


query = "SELECT [COGNOME], [INDIRIZZO] FROM IMPIEGATI + where"


Arrivati a questo punto sono più che certo che al sintassi della query sqlserver non stia nemmeno un po' in piedi per quanto riguarda l'inserimento di variabili all'interno di essa....Come sarebbe in forma corretta? :(

Dim DAdapter As New SqlClient.SqlDataAdapter(query, cnSqlDb)
DAdapter.Fill(DsetDati, "IMPIEGATI")

Riempito il dataset con i dati della tabella ho trovato qualcosa del genere su internet che cmq mi da errore poichè ListaTest non è dichiarato ( e nn saprei come dichiararlo).

ListaTest.DataSource = DsetDati.Tables("IMPIEGATI")
ListaTest.DataBind()

End Sub

Come diavolo si crea un legame ( un bind?) tra quanto sopra e la gridview che dovrebbe riportare i risultati?

Grazie, ciao a tutti :)

alx_81 Profilo | Guru

Ciao!
per fare prima ti ho postato un semplice mio esempio..
spero faccia al caso tuo..
ciao!

PS: ListaTest, una volta messo a designer, se è il tuo GridView, deve esistere..
Oppure hai sbagliato nome del GridView..

Alx81 =)

http://blogs.dotnethell.it/suxstellino
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5