Avatar billede tjgrindsted Nybegynder
08. april 2007 - 22:38 Der er 15 kommentarer og
1 løsning

Sæt en værdi = session fra en SELECT linje

Hej

Hvis jeg har følgende kode, hvor kan jeg så sætte de forskellige ting = et navn, ved godt at jeg i min SELECT linje kan sige Tabel1 AS Tabel men hvis jeg nu vil sætte det som en session hvor i koden skal den så vise at Session("ImageShow") = DogImageDate !?

    Public Sub OpenDB()
        Dim ObjConn As OleDbConnection
        Dim ObjCmd As OleDbCommand
        Dim ObjReader As OleDbDataReader
        'ConnectionString og SQL linje.
        Dim ConnectionString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
        ObjConn = New OleDbConnection(ConnectionString)
        ObjCmd = New OleDbCommand("select * from somestuff where status='MAYBE' order by date desc", ObjConn)
        'Prøv at åben Connection.
        Try
            ObjConn.Open()
            ObjReader = ObjCmd.ExecuteReader(CommandBehavior.CloseConnection)
            'Hvis der er data, udskriv da dataen til en Repeater med id=Repeater1.
            If ObjReader.HasRows() Then
                Repeater1.DataSource = ObjReader
                Repeater1.DataBind()
            Else
                'Hvis der ikke er data, lav en fejl tekst.
                Response.Write("intet i databasen DB")
            End If
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            'Lukker Connection, Reader og Sletter Hukommelse.
            If Not ObjReader Is Nothing Then
                ObjReader.Dispose()
            End If
            If Not ObjConn Is Nothing Then
                ObjConn.Dispose()
            End If

        End Try
    End Sub
Avatar billede torotune Nybegynder
09. april 2007 - 01:04 #1
Hvis jeg forstår dit spørgsmål rigtigt, kan du så ikke sige jo sige:

If ObjReader.HasRows() Then
Session("ImageShow") = ObjReader("DogImageDate")





             



altså nede ved
Avatar billede torotune Nybegynder
09. april 2007 - 01:04 #2
sorry, det sidste skulle ikke have været med..
Avatar billede tjgrindsted Nybegynder
09. april 2007 - 17:30 #3
nej så laver den ikke:

Repeater1.DataSource = ObjReader
Repeater1.DataBind()

og sætter jeg den efter så giver den Session ingen Værdi.
Avatar billede torotune Nybegynder
09. april 2007 - 22:37 #4
Okay, hvad så hvis du laver:

If ObjReader.Read() = True Then
  Session("ImageShow") = ObjReader("DogImageDate")
End If

og så fortsætter med:

If ObjReader.HasRows() Then ...
Avatar billede neoman Novice
10. april 2007 - 10:40 #5
Readeren frem hver gang du kalder reader.read.

Værdierne læst fra readerne er gemt i repeateren, og du kan få fat i dem ved at løbe igennem Repeater1.Items collection, og dér så sætte din session-parameter.
Avatar billede neoman Novice
10. april 2007 - 10:42 #6
Readeren stepper frem ... ("stepper" var faldet ud)
Avatar billede tjgrindsted Nybegynder
10. april 2007 - 11:09 #7
Hej Neoman

Vil du evt. give et eks. er ny i (dot)NET.
Avatar billede neoman Novice
10. april 2007 - 11:39 #8
Kig på dette eksempel :  http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.repeateritem(VS.80).aspx for at få ideen.

Den specifikke udførelse afhænger af hvad din repeater indeholder af kontroller.
Avatar billede tjgrindsted Nybegynder
10. april 2007 - 12:22 #9
hmm tror ikke det er det jeg søger...

Mit problem er at jeg skal lave den Repeater1 som jeg har nu men jeg skal også bruge en session til en Formview og her skal jeg bruge den session som skal være = DogImageDate. FormView bliver selvf. kaldt efter min Repeater1.
Avatar billede neoman Novice
10. april 2007 - 12:38 #10
Så forstår jeg ikke hvad du søger.

Så vidt jeg forstår så prøver du at få fat i data fra database, vise dem i repeater, og samtidigt gemmme en værdi i Session er det rigtigt ? En af måderne  du kan gøre det på er som anført ovenfor.

Alternativt kan du gøre som du selv har prøvet, dog ved først at have en datareader, hvor du får fat i din værdi og derpå lukker den, og derpå at starte en ny datareader som du så binder til din repeater.
Avatar billede tjgrindsted Nybegynder
10. april 2007 - 14:24 #11
CITAT:
Så vidt jeg forstår så prøver du at få fat i data fra database, vise dem i repeater, og samtidigt gemmme en værdi i Session er det rigtigt ? En af måderne  du kan gøre det på er som anført ovenfor.

Jo det er det jeg vil synes bare ikke jeg kan se det ud fra det link du gav...
Avatar billede neoman Novice
10. april 2007 - 15:13 #12
Når du har fået data ind i din repeater, så er de gemt der. Efterfølgende kan man fiske dem op derfra.

Det link viser et eksempel på hvordan du looper gennem de RepeaterItems der er tilhører en repeater, hvor hver RepeaterItem svarer til en indlæst record. Endvidere vises der hvordan, i det enkelte RepeaterItem, du så får fat i de værdier der måtte være gemt der. Når du så har fat i det ønskede, så er det dér du kan gemme værdien i session.

Du kunne prøve at køre den kode der er angivet i eksempelt - måske bliver det klarere.

Ellers, lav det med to readers som foreslået - det er aldeles uelegent, men det vil da virke og er nemt.
Avatar billede tjgrindsted Nybegynder
10. april 2007 - 17:06 #13
Ahh så det kun dette område jeg skal bruge i en SUB:

        Label1.Text = "The Items collection contains: <br>"
       
        Dim item As RepeaterItem
        For Each item In  Repeater1.Items
            Label1.Text &= _
                CType(item.Controls(1), DataBoundLiteralControl).Text & "<br>"
        Next item
Avatar billede neoman Novice
10. april 2007 - 17:39 #14
Nemmerlig! :-) Men eksemplet svarer jo sikkert ikke helt til indholdet i din repeater - du har vel nogle labels eller tekstboxe ? så skal der tilsvarende stå Label eller TextBox  i CTYPE- kaldet. Og "item.controls(0)" er så den første textbox/label/whatever, item.controls(1) er den anden osv osv.
Avatar billede tjgrindsted Nybegynder
12. april 2007 - 12:54 #15
@ Neoman

Jeg har prøvet at lege med det men synes ikke jeg kan få det til at virke, kunne det tænkes at du vil hjælpe med et eks. som ikke udskriver til en Label men bare sætter evt. Database tabel felt "tester" = Session("udtræk").  Så tror jeg helt sikkert jeg kan komme videre.
Avatar billede tjgrindsted Nybegynder
26. april 2007 - 12:19 #16
lukker
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