Har en lite av en nybörjarfråga, jag undrar hur man skall skriva koden när man vill läsa från access db och skriva ut olika värden i olika lablar..
tänkte använda mig av datareader
3 svar · 372 visningar · startad av MizzK
Har en lite av en nybörjarfråga, jag undrar hur man skall skriva koden när man vill läsa från access db och skriva ut olika värden i olika lablar..
tänkte använda mig av datareader
Varför inte prova att söka på OleDbDataReader? ;)
har gjort det vet hur man gör själva uppkopplingen och allt men inte hur man gör för att kunna göra så att den fattar att "jag vill ha X utskrivet från databasen i labeln"
Detta har jag än så länge
'Skapar anslutning (anropar från web.config)
Dim strConn As String = ConfigurationSettings.AppSettings("Connstr").Replace("%MAPPATH%", Server.MapPath(" "))
Dim myConn As New OleDbConnection(strConn)
Dim strSQL As String = "SELECT * FROM layoutrad"
Dim myCommand As New OleDbCommand(strSQL, myConn)
Dim myDataReader As OleDbDataReader
Dim infotext As String
If Not Page.IsPostBack Then
'Try
myConn.Open()
myDataReader = myCommand.ExecuteReader()
'binder datan med repeatern
myDataReader.Read()
myDataReader.Close()
myConn.Close()
End If
Det man måste veta är vilken text som skall ligga var och vilka textelement som skall ligga på en sida.
Det är grunden i Content Management System och det finns flera olika sätt att göra detta, t.ex. .resx filer, databas, textfiler, m.m.
Här har du ett exempel på en databaslösning:
Pages
------------
id
pagename (eller url)
description
PageElements
-------------------
id
elementname
pageid
PageElementTexts
---------------------------
id
elementid
langid
elementtext
I tabellen pages ligger information om alla sidorna i sajten t.ex.
1 default.aspx "Sajtens startsida"
2 menu "Meny"
Som du ser kan du använda både url och ett givet namn som benämning.
I PageElements ligger alla element som skall finnas på en sida.
1 hdrWelcome 1
2 InfoText 1
3 lnkHome 2
4 lnkLinks 2
Och slutligen så ligger texten som skall visas i PageElementsText. Att jag lägger till en langid kolumn är för att kunna ha en flerspråkigsajt, t.ex. 1=Sverige 2=UK
1 1 1 "Välkommen!"
2 1 2 "Welcome!"
3 2 1 "Det här är min sajt"
4 2 2 "This is my site"
... osv. ...
Då har du grunden. Du vet vad som skall finnas på en sida och du har ett sätt att bestämma var det ska visas.
Vad du måste ha nu är, för varje sida:
1. Du måste få ut ElementNamn och ElementText från databasen för en vald sida. En SQL-sats
2. Stoppa in dessa i en array. Personligen kör jag med Objekt och Collections.
3. Ha en funktion som söker igenom din array efter ett givet elementnamn. Inbyggt i en Collection.
4. Sätt in den hittade texten i din label.
På startsidan i exemplet skulle man då skicka in "default.aspx" och ett språk id (1) och få tillbaka data som i en array ser ut så här:
hdrWelcome "Välkommen!"
InfoText "Det här är min sajt"
Om din sökfunktion heter GetText(element) så använder du
lblWelcome.Text = GetText("hdrWelcome")
lblInfo.Text = GetText("InfoText")
Som sagt det finns andra lösninger men här har du lite grundläggande exempel som fungerar.
Men lite kod får du sätta ihop själv. ;)
Men om du vill ha mer hjälp med det också så la jag faktiskt upp en ASP version av detta på Planet Source Code för ett par år sedan. Du kan ju kolla där,http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7131&lngWId=4
Men som sagt, idag när jag använder .NET så kör jag med objekt och klasser. Har skrivit lite om det här http://www.pdc.se/blog/DisplayEntry.aspx?eid=1