Wimpie
wzl-lid
Sinds 24/9/2004
T: 39
R: 152
|
20/4/2006 -
16:23u
| Quote
|
Ik ben een toepassing aan het maken om gegevens uit een database te halen en op het scherm te zetten via ASP.NET (visual studio 2005). Nu is het de bedoeling dat er verschillende filter-mogelijkheden zijn... bv enkel items tonen van type A of met afkomst België... Het probleem is dus dat ik op voorhand niet weet hoeveel en welke filters gaan ingesteld worden. Moest ik bv zeker zijn dat er enkel op type gesorteerd moest worden dan zou mijn sql zijn: ('t is voor MS SQL-server 2000) SELECT id, name, blabla FROM table WHERE type=@parameter_Type ORDER BY id Maar als er nu geen type wordt ingegeven maar wel iets anders dan klopt dit al helemaal niet.
Hoe kan ik da oplossen? Ik heb al iets gevonden over dynamic SQL ma da schijnt nie zo veilig te zijn? En daar moet ge stored procedures voor gebruiken dacht ik? Dit lijkt mij toch een veel voorkomend probleem dus er zal wel een goede oplossing voor bestaan neem ik aan, de vraag is of iemand deze oplossing kent?
|
Phil
Uberhacker
Sinds 23/2/2003
T:10 -
R:484
|
20/4/2006 -
17:51u
| Quote
|
Hmm .. ik zou zeggen, kijk eens naar (n)Hibernate voor Criteria select - maar ik vrees dat dat niet voor asp.net zal gaan. Anders gewoon een hashmap/dictionary opbouwen: name/value, en dan een toString(dictionary, method) methode die die string omzet naar name1='value1', name2=value2, name3='value3', etc .. voor een select methode genereert. Niet zo fantastisch, maar het zal wel werken.
|
Keneo
wzl-lid
Sinds 19/10/2004
T:7 -
R:409
|
20/4/2006 -
22:08u
| Quote
|
kunt ge nie
SELECT id, name, blabla FROM table @parameter_WhereType ORDER BY id
zoiets doen? of zie ik het (alweer) totaal verkeerd in...
|
Dj Fre
wzl-lid
Sinds 13/12/2003
T:71 -
R:1690
|
20/4/2006 -
22:44u
| Quote
|
Keneo schreef: kunt ge nie
SELECT id, name, blabla FROM table @parameter_WhereType ORDER BY id
zoiets doen? of zie ik het (alweer) totaal verkeerd in... zo heb ik het ook opgelost vorig jaar in ADO.NET
|
stalin
wzl-lid
Sinds 14/10/2004
T:14 -
R:369
|
21/4/2006 -
11:25u
| Quote
|
Dj Fre schreef:
Keneo schreef: kunt ge nie
SELECT id, name, blabla FROM table @parameter_WhereType ORDER BY id
zoiets doen? of zie ik het (alweer) totaal verkeerd in... zo heb ik het ook opgelost vorig jaar in ADO.NET
en da werkt of wa, dat is toch geen valid sql code dacht ik zo, maar ik zou wel mis kunnen zijn ook. Maar als ik mijn 1e semester goed heb opgelet, dan heb ik toch nog nooit tegengekomen dat je zo'n code kunt schrijven
|
Keneo
wzl-lid
Sinds 19/10/2004
T:7 -
R:409
|
21/4/2006 -
11:48u
| Quote
|
dan zou "SELECT id, name, blabla FROM table WHERE type=@parameter_Type ORDER BY id" ook nie werken 
@parameter wordt nog ingevuld tijdens de uitvoering van uw programma, (ge zorgt der dus voor da da geldige sql is die voortkkomt uit die invulling) en dan pas wordt uw sql code uitgevoerd...
Laatst aangepast door
Keneo
op 21/04/2006 11:48:42u
(1x aangepast)
|
m0rPh3uS
WZL-lid
Sinds 13/1/2003
T:1 -
R:38
|
21/4/2006 -
15:24u
| Quote
|
I concur met de methode van Phil: een dictionary opbouwen met daarin uw kolom/value als key/value en afhankelijk daarvan een querystring/Stored_proc opbouwen.
|
Wimpie
wzl-lid
Sinds 24/9/2004
T:39 -
R:152
|
21/4/2006 -
15:48u
| Quote
|
m0rPh3uS schreef: I concur met de methode van Phil: een dictionary opbouwen met daarin uw kolom/value als key/value en afhankelijk daarvan een querystring/Stored_proc opbouwen.
ik heb het met een hashtable gedaan (denk dat dit hetzelfde is als wat jij bedoelt)
|