Ricerca dati con select

mercoledì 01 settembre 2010 - 11.30

mauri1961 Profilo | Senior Member

Effettuo nella mia applicazione una select che mi mostra solo dei cognomi in base a quanto inserisco nel campo di ricerca. La select in questione è la seguente (e funziona):

"select * from WEB_SINDA where SIN_COGNOME like '%" & cerca.Text & "%' AND SIN_SINDACATO=' " & Session("linkfield").ToString() & "' order by sin_cognome"

digitando ROSSI compaiono logicamente tutti i records che contengono tale selezione (ROSSI, DE ROSSI, COLAROSSI ...) come devo fare per limitare i records alla ricerca effettuata? Mi spiego meglio, se digito ROS vorrei che venissero mostrati tutti i records che iniziano con tale radice.

Grazie, Maurizio.

alexmed Profilo | Guru

Ciao
>digitando ROSSI compaiono logicamente tutti i records che contengono
>tale selezione (ROSSI, DE ROSSI, COLAROSSI ...) come devo fare
>per limitare i records alla ricerca effettuata? Mi spiego meglio,
>se digito ROS vorrei che venissero mostrati tutti i records che
>iniziano con tale radice.

Dovrebbe bastare eliminare il primo carattere jolly '%'

"select * from WEB_SINDA where SIN_COGNOME like '" & cerca.Text & "%' AND SIN_SINDACATO=' " & Session("linkfield").ToString() & "' order by sin_cognome"

>Grazie, Maurizio.
Prego

Ciao

alexmed

mauri1961 Profilo | Senior Member

ho provato...ma nessun risultato. Per meglio spiegarmi devo aggiungere che oltre alla select che ti ho menzionato:
"select * from WEB_SINDA where SIN_COGNOME like '" & cerca.Text & "%' AND SIN_SINDACATO=' " & Session("linkfield").ToString() & "' order by sin_cognome", conn

la stessa viene ripetuta nella sqldatasource della gridview che mostra i dati:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:CASSAWEBConnectionString %>"
SelectCommand="SELECT * FROM [WEB_SINDA] WHERE (([SIN_SINDACATO] = @SIN_SINDACATO) AND ([SIN_COGNOME] LIKE @SIN_COGNOME + '%') ORDER BY SIN_COGNOME)">
<SelectParameters>
<asp:QueryStringParameter Name="SIN_SINDACATO" QueryStringField="linkfield"
Type="Decimal" />
<asp:ControlParameter ControlID="cerca" Name="SIN_COGNOME" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>

che ho corretto in base a quanto mi hai riferito, ma non funziona continua a farmi vedere tutti i record come se avessi tenuto il carattere jolly in testa.

Grazie, Maurizio

alexmed Profilo | Guru

Ciao
La sintassi è corretta e quello che non capisco è quendo affermi:
>la stessa viene ripetuta nella sqldatasource della gridview che mostra i dati:

La query deve essere una sola: quella inserita nell'SqlDataSource.
Il motivo probabilmente è legato al PostBack della pagina: quando premi il Button la TextBox "cerca" viene azzerata prima che venga passato il parametro alla query.

Prova a mettere tutto dentro ad uno ScripManager ed un UpdatePanel (TextBox "cerca" - Button e GridView)

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
..... QUI METTI I CONTROLLI
</ContentTemplate>
</asp:UpdatePanel>

Ciao

alexmed
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