Select multiple

giovedì 25 maggio 2006 - 19.20

bluland Profilo | Guru

salve, avrei la necessita' di effettuare delle select su una tabella per ogni campo della tabella, ed ovviamente di poter scegliere il campo tramite un controllo io avevo pensato a due dropdownlist in cascata in cui dalla prima sceglievo il campo con cui effettuare la query e quindi sarebbe da ingresso alla seconda che mi fa scegliere il record da visualizzare. solo che in questo modo dovrei cmq scrivere una select per ogni campo che voglio fare la query...
qualcuno puo' darmi qualche suggerimento su come gestire meglio la situazione??
saluti
Enzo

ps ditemi se mi sono spiegato...

freeteo Profilo | Guru

ciao,
se vuoi fare qualcosa di cosi' parametrico non puoi che farlo da codice, usando 1po di parametri nella query dovresti riuscire senza grossi problemi.
Ti consiglio di provare ad avere le 2 dropdown con AutoPostBack = true e fare cosi:
- nel load (con ispostback=false) riempi la lista campi magari con 1 GetSchema del dataadapter
- nell'evento SelectedIndexChanged della prima combo riempi con la 2da combo con i sigoli record
- nell'evento SelectedIndexChanged della 2da fai la query definitiva per quel singolo record

ovvio che devi fare 1a query diversa per ogni campo che selezioni dalla 1ma dropdown, pero' puoi fare 1a concatenazione di stringa tipo :
"select " + dropdownlist1.SelectedValue + " from tabella"

e via cosi'....
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bluland Profilo | Guru

e' possibile anche fare una query di questo tipo :

select * from mytable where A = dropdownlist1.selecteditem.value


cioe' dove il parametro di A = dropdownlist2.selecteditem.value ?

freeteo Profilo | Guru

certo,
basta che sia 1a concatenazione di stringhe quindi :
"select * from mytable where A = " + dropdownlist1.selecteditem.value

se a è stringa :
"select * from mytable where A = '" + dropdownlist1.selecteditem.value + "'"

uppure lavori con i parametri del command:
"select * from mytable where A = @parametro"
ed aggiungi i parametri al tuo command:
miocommand.Parameters.Add(new SqlDataParameter("parametro",dropdownlist1.selecteditem.value ))

nell'ultimo caso vai tranquillo con problemi di apostrofi o sqlinjection....quindi te lo consiglio
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bluland Profilo | Guru

ma se volessi costruire una sola query??
mi spiego meglio ho la seguente query
select * from mytable where A = " + dropdownlist1.selecteditem.value

dove il parametro di ingresso alla query e' una dropdownlist1 e fino e qui niente di anormale, pero' vorrei che anche il parametro A sia un parametro di ingresso magari un altra dropdownlist, in questo modo potrei interrogare una tabella per tutti scrivendo una sola volta la query, che ne pensi?

freeteo Profilo | Guru

ciao,
devi concatenare via stringa, se 1parametro dipende da 1altro non puoi fare altro che farlo a mano :-)
quando ce li ha disponibili tutti e 2 allora fai la query....percio' devi lavorare lato codice sull'evento della dropdown...2 me non hai altre strade

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5