Výpis menu z databaze   zodpovězená otázka

VB.NET, ASP.NET WebForms, Databáze

Dobrý den,

pro začátek bych chtěl říci že do teď jsem dělal takové (pro zábavu weby v php "žádnej zázrak"), nedávno jsem narazil na ASP.NET a zalíbilo se mi ale k tomu abych s ním uměl pořádně zacházet mi zbývá ještě spoutsty práce.Díval jsem se na videotutoriáli začínáme s ASP.NET na mstv.cz , četl jsem honě článku zde na vbnet.cz hlavně o visula basicu a i asp. teď k samotném problému

Jak je už z nadpisi jasné "nevím" jak vypsat menu z db (jak by to mělo vypadat se můžete podívat na mých stránkách v PHP které bych chtěl postupem času přepsat do ASP Odkaz : www.grr.over.cz ) tak tu nejdříve popíšu jaké mam tabulky v db a poté jak jsem se toto pokoušel vyřešit ale více méně bez úspěchu :(.

Takže v db mám 2 tabulky první s názvem Topics ve které mám sloupce id a name id je jasné a name je název topicu a poté drouhou tabulku s názve Posts která má sloupce id,name,text,idtopic name je název a text je text postu a idtopic odkazuji na určité id topicu , top by bylo jasné ale jak už byl řečeno v informacích tak je třeba dobrý popis. Jo jetě z těchto 2 tabulek jsem udělal view který je spojil podle u topic id a u postu idtopic coč vyplivne zkráceně toto.

...

název topicu, název postu

název topicu, název postu

název topicu, název postu

....

Je to divný způsob ale .....

Tak teď ka samotnému webu.Na začátku jsem drobek lhal sice jsem tento problém vyřešil ,ale je to skutečně hrozný způsob a jsou tam nějaké neošetřené věci které by možná šli ošetřit ale jak už sem řek je to celé takové podivné zacházel jsem s tím jak s php a to určitě není dobře.Tedy píšu můj zrůdný způsob:

Takže tam kde jsem chtěl vypsat menu jsem dal komponentu label. Poté jsem udělal procedru menu() v ní sem se připojil ka db poté pomocí datareader četl jednotlivé řádky a podmínkama uročoval to co se má provése se koukněte v následujícim kodu takhle se to špatně píše.No a proč se mi to neůíbí protože s tím zacházím jak z s php a vypisuji smaotné html přes visual a to mi přijde u ASP.NEt takové divné.Zde ten slíbený skript:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Menu()

    End Sub
    
    ''' <summary>
    ''' Vypíše menu
    ''' </summary>
    Private Sub Menu()
        
        'Sql connect & command
        Dim connStr As String = ConfigurationManager.ConnectionStrings("GrrConnectionString").ConnectionString
        Dim sqlConnection As New SqlConnection(connStr)
        Dim Topics As String = "select * from [topic]"
          
        Using con As New SqlConnection(connStr)
            Using com As New SqlCommand(Topics, con)
                
                'Připoení k db
                con.Open()
                
                'deklarujeme DataReader
                Dim dataReader As SqlDataReader = com.ExecuteReader()
                Dim a As String = "<div class='linkslist'>"
                Dim b As Integer = -1
                
                
                'DataReader čte řádek pořádku
                Do While dataReader.Read
                    Dim x As String = ""
                    If Request.QueryString("id") = dataReader("IdP") Then
                        x = "class='checklink' "
                    End If

                    
                    
                    If b = -1 Or b <> dataReader("IdT") Then
                        a = String.Format("{0}</div><div class='linkslist'><div class='topicbox'>{1}</div><a {2}href='Default.aspx?id={3}'>{4}</a> ", a, dataReader("Topic"), x, dataReader("IdP"), dataReader("Name"))
                    Else
                        a = String.Format("{0} <a {1}href='Default.aspx?id={2}'>{3}</a> ", a, x, dataReader("IdP"), dataReader("Name"))
                    End If
                        
                    b = dataReader("IdT")
                Loop
                
                Label1.Text = a & "</div>"
                
                'musíme zavřít dataReader
                dataReader.Close()
                
            End Using
            
            'musíme zavřít connecting
            con.Close()
            
        End Using
    End Sub 

To myslím by mohlo k tomuto divnému způsobu stačit.Doufám že se nebudete zlobit že sem píšu takové blbosti ale chtěl jsem poukázat na to že když neco nevím že se snažím na problém přijít sám a né že jako první blb napíšu hnde na fórum ať mi to napíšou.Bohužel muj postup moc neuspěl tak jsem se na vás odvážil odkázat.

Další způsob který mě napadl ale jelikož s ASP začínám nevím jak provést a jestli to je vůbec možné.A to je nějak to udělat přes komponěntu repeater ale nevěděl jsem jak udělat aby si při dotazu where u postů si to bralo id z právě vybraného tobicu

nějak takhle vy to mělo myslim jit ale nevim SELECT * FROM Posts WHERE idtopic=@id a to @id by se mělo tahat z aktuální ho id topic ale nevím jak.No to bude asi vše co jsem k tomu mohl napsat a ještě bych chtěl takový dotatek:Předem děkuji za odpovědi a omlouvám se za pravopisné chyby (češtinu nenávidím :-D)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Asi jste hledal málo.

http://vbnet.cz/clanek--111-zaciname_s_a...

Myslím,že v tomto díle seriálu je to popsáno výborně.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Jsem to ale .... já ten serial asi nečet celí.....no děkuji a omlouvám se....

nahlásit spamnahlásit spam 0 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