ASP.NET: Gridview filteren met sql query ?

Pagina: 1
Acties:

  • NoFate
  • Registratie: Januari 2003
  • Laatst online: 09:37
Hallo

Ik heb een gridview op mijn aspx pagina
Ik heb deze heel simpel gemaakt met een sqldatasource
bv : select * from tabel

Maar nu wou ik een filter toepassen

Dus dan heb ik een textbox bijgemaakt
Mijn sql query wordt dan bv :
select * from tabel where (naam like '%' + @naam + '%' OR comment like '%' + @comment + '%')

Nu dit gaat goed , maar er wordt via deze manier maar in kolom gezocht...

Stel dat in kolom naam : "NoFate" zit , en in kolom comment : "test" zit
En ik zoek op : "NoFate test" , dan krijg ik natuurlijk geen resultaten

Ook als er meerdere woorden worden meegegeven die niet op dezelfde manier in het record zitten , dan vindt hij ook niets

bv in kolom naam zit : "NoFate test"
Ik vul in in mijn textbox : "test NoFate"
dan krijg ik ook geen resultaten...


Hoe kan ik dit oplossen?

Verwijderd

De woorden uit je query filteren (exploden op spatie), in een array stoppen en dan voor elke kolom hier een where-clause voor maken. Kan je verklappen dat dat niet echt efficient is...

Het kan misschien ook wel makkelijker, kan zo niets bedenken.

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Volgens mij will je een fulltext search.

(ik neem aan dat het sql-server is?)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • NoFate
  • Registratie: Januari 2003
  • Laatst online: 09:37
ja , ik werk via ASPNETDB.MDF bestand

Hoe kan ik dan zoeken op zo'n fullsearch text ?

Moet ik mijn woorden die ik invul niet laten splitsen?
En dan mijn sql dynamisch laten opbouwen where part1 like ... part2 like...

Of ben ik serieus mis?

  • NoFate
  • Registratie: Januari 2003
  • Laatst online: 09:37
Hallo
Ik heb een mogelijke goede oplossing gevonden voor mijn probleem.

Dit is momenteem mijn asp.net code :
code:
1
2
3
4
5
6
  </asp:SqlDataSource><asp:SqlDataSource ID="documentsfilter" runat="server"
        ConnectionString="<%$ ConnectionStrings:documents %>" SelectCommand="SELECT * from documents where naam like '%' + @naam + '%'" CancelSelectOnNullParameter="False">
        <SelectParameters>
            <asp:ControlParameter ControlID="txtSearch" Name="naam" PropertyName="Text" />
        </SelectParameters>
    </asp:SqlDataSource>


Dus in mijn txtsearch texbox geef ik een string mee:
bv : "dit is een test"
Als ik deze string omvorm naar : "%dit%is%een%test%" dan zoekt hij wel op alle kernwoorden...

Dus eigenlijk moet ik in bovenstaande stukje code erges een REPLACE functie toepassen met eventueel een TRIM.
Maar ik weet dus niet hoe en waar...

Bedankt voor julle hulp