Řazení v dotazu dle hodnoty v komponentě   zodpovězená otázka

ASP.NET WebForms

Dobrý den, potřeboval bych poradit s následujícím problémem ...

Mám komponentu Repeater na zobrazení příspěvků a na stránce komponentu DropDawnList, ve které si uživatel může vybrat zda se nejnovější příspěvky zobrazí nahoře či dole

<asp:DropDownList ID="ddl_Order" runat="server" Width="100px" ForeColor="#000000"><asp:ListItem Text="Nejstarší nahoře" Value="DESC"></asp:ListItem><asp:ListItem Text="Nejstarší dole" Value=""></asp:ListItem></asp:DropDownList>

Jelikož jsem začátečník, potřeboval bych poradit ze správnou syntaxí SQL dotazu:

SelectCommand="SELECT [IdComent], [Coment], [Autor], [ReAutor], [DateCreation] FROM [Coment] WHERE ([ObjKod] = @ObjKod) ORDER BY [IdComent] @Order">

    <SelectParameters>
      <asp:QueryStringParameter Name="ObjKod" QueryStringField="OC" Type="String" />
      <asp:ControlParameter ControlID="ddl_Order" DefaultValue="" Name="Order" PropertyName="Value" Type="String" />
    </SelectParameters>

Děkuji za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myšlenka je dobrá, ale takhle to bohužel nejde z bezpečnostních důvodů. Vy chcete parametrem Order definovat jedno z klíčových slov řazení ASC nebo DESC. Parametrem můžete ale určit jen konkrétní hodnoty (například text pro porovnání, číslo pro vložení do tabulky atp.), nikoliv klíčová slova, či jména sloupců a tabulek.

Řešením je upravovat SQL kód z kódu před načtením dat, například:

Dim zpusobRazeni As String

If neco Then
 zpusobRazeni = "ASC"
Else
 zpusobRazeni = "DESC"
End If

SqlDataSource1.SelectCommand = "SELECT [IdComent], [Coment], [Autor], [ReAutor], [DateCreation] FROM [Coment] WHERE ([ObjKod] = @ObjKod) ORDER BY [IdComent] " + zpusobRazeni
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Moc děkuji,

už mi to podle Vašeho návodu funguje ...

Ještě jednou dík

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback