Avatar billede skindbeni Nybegynder
26. august 2007 - 01:43 Der er 4 kommentarer og
1 løsning

VB.Net, CMS, hente indhold fra DB, Jeg mangler noget

Hej.

Som jeg har forsøgt at få med i min titel, så er jeg ved at forsøge at bygge et CMS-lignende websted med asp.net (VB.net), men jeg mangler noget, hvor jeg forsøger at hente mit indhold fra min database.

Min database hedder data.mdb (access) og tabellen kalder jeg content med følgende (simplificeret) felter: ID, Titel, Indhold.

Min side, her nyheder.aspx skal vise indhold afhængigt af, hvad sidens request.querystring siger.

Fx skal nyheder.aspx?ID=2 vise indholdet af hvad der svarer til tabellens indhold hvor ID = 2.

Selve kaldet til databasen har jeg fod på (mener jeg da), men jeg putter lige min kode i indlægget og så kan i selv bedømme:

---
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim db As String = "C:\Documents and Settings\Michael\Dokumenter\Visual Studio 2005\WebSites\website1\App_Data\data.mdb"

Dim connStr As String = String.Format("Provider=Microsoft.jet.OleDB.4.0;Data Source={0};User ID=admin;Password=;", db)

Dim conn As OleDbConnection = New OleDbConnection(connStr)

Dim myCommand As OleDbCommand
Dim mySQL As String

If Request.QueryString("ID") > 0 Then
  mySQL = "SELECT ID, Titel, Indhold FROM content WHERE ID = " request.querystring("ID")
Else
End If

End Sub
---

Men jeg mangler som sagt noget i min kode for at få den ønskede virkning.

Evt. forbedringer af koden modtages også gerne.
Avatar billede karsten_larsen Praktikant
26. august 2007 - 06:52 #1
Noget i denne stil:


      If Request.QueryString("ID") <> Nothing And IsNumeric(Request.QueryString("ID")) = True And CType(Request.QueryString("ID"), Integer) > 0 Then

            Dim Connection = New System.Data.SqlClient.SqlConnection
            Connection.ConnectionString = ConfigurationManager.ConnectionStrings("DinForbindelse").ConnectionString
            ' DinForbindelse lægges i webconfig

            Dim Reader As System.Data.SqlClient.SqlDataReader
            Dim Command As System.Data.SqlClient.SqlCommand

            Dim mySQL As String = ""
            mySQL = "SELECT ID, Titel, Indhold FROM content WHERE ID = " & CType(Request.QueryString("ID"), Integer)
            Command = New System.Data.SqlClient.SqlCommand(mySQL, Connection)

            Connection.Open()
            Reader = Command.ExecuteReader()
            If Reader.Read = True Then
                Do
                    Label1.Text = Reader("ID").ToString.Trim()
                    Label2.Text = Reader("Titel").ToString.Trim()
                    Label3.Text = Reader("Indhold").ToString.Trim()
                Loop While Reader.Read
            Else
            End If
            Reader.Close()
            Connection.Close()

        End If



:-) karsten_larsen
Avatar billede skindbeni Nybegynder
26. august 2007 - 19:08 #2
Det vil jeg godt give points for.

Lige en ting til.

Hvad kan / bør jeg bruge i stedet for en label til at vise mit indhold inkl. HTML-koder.

Eksempel på "indhold"

---
<h1>Overskrift</h1>
<br />
<p>En masse tekst og der kan være rigtig meget</p>
osv...
---
Avatar billede neoman Novice
26. august 2007 - 19:22 #3
en Literal - den kan indstilles, om HTML'en skal fortolkes eller smides videre til klienten  som "dum" tekst
Avatar billede karsten_larsen Praktikant
26. august 2007 - 21:13 #4
som neoman skriver.

f.eks. således:

Panel_1.Controls.Add(new LiteralControl("Tekst fra databasen")); eller textbox's hvis teksten skal redigeres af bruger f.eks. Textbox1.text = Reader("Indhold").ToString.trim()

:-) karsten_larsen
Avatar billede karsten_larsen Praktikant
26. august 2007 - 21:15 #5
ups (det skulle være VB)
Panel_1.Controls.Add(New LiteralControl("Tekst fra databasen"))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester