Påvirke en ORDER BY med Variabel.

Tags:    .net

Hej Piger Og Drenge.

Her er et måske simpelt spørgsmål til jer.
Jeg har en simpel form, hvor folk kan søge på div argumenter, det virker, som sådan også.

Men så ville man jo gerne gøre, at man kunne liste sin søgning ud fra en ORDER BY, men det syntes den bare, at ignorer.

Her er lidt kode:

strSQL = "SELECT * FROM traffic left join protocols ON traffic.protocol = protocols.id where timestamp >= @timestamp && timestamp <= @timestampto ORDER BY @orderlist DESC limit @countmax ";

Den ignorer blot dette:
ORDER BY @orderlist

Hvordan kan jeg påvirke den?

Benytter C# hvis det har betydning for svaret.
Stiller gerne 50points til rådighed for et godt svar , da jeg ikke har flere ideer.

Og, ja den får alle argumenter med



4 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato

Hej Tim,

Jeg syntes eller lige at det ser fint ud. Men prøv at udskrive strSQL i et felt i formen, og se hvad den bliver.

Nåja, og så fjern " DESC limit @countmax " og prøv lige igen også.

Med venlig hilsen
Ieet




Det er ikke rigtigt muligt at skrive SQL'en ud, da han benytter parameters, og derved bliver SQL'en ikke sat ind i en string variabel inden den sendes til databasen.

Men ja, tag da og fjern "limit @countmax" engang, og så prøv evt. at sortere både DESC og ASC for at se om der er forskel.



Noget i den her stil??

string X = Request.QueryString["X"];
string Order;

if(Order == "1")
{
Order = Punkt1;
}
Else
{
if(Order == "2")
{
Order = Punkt2
}
}
(osv)

strSQL = "SELECT * FROM traffic left join protocols ON traffic.protocol = protocols.id where timestamp >= @timestamp && timestamp <= @timestampto ORDER BY "+ Order +" DESC limit @countmax ";

Det er så op til dig om du vil lave det med QueryString.. Du kan også lave det med CommandArgument.. Ikke et perfekt eksempel, men måske noget der kan lede dine tanker hen på en god løsning :)



Følger lige med :P



Indlæg senest redigeret d. 04.11.2008 16:54 af Bruger #11545
t