Avatar billede websam Nybegynder
26. juli 2005 - 08:49 Der er 8 kommentarer og
1 løsning

Cache dataset ?

Hejsa,

Jeg har lavet følgende til at cache et dataset :

Public Shared Function CacheProduct()
    Dim Source As DataSet = CType(HttpContext.Current.Cache("Product"), DataSet)
    If Source Is Nothing Then
        Source = ProductData.LoadProduct()
        HttpContext.Current.Cache("Product") = Source
    Else
        Dim intRows As Integer
        intRows = Source.Tables(0).Rows.Count

        If intRows <> CInt(ProductData.CountProduct()) Then
            HttpContext.Current.Cache.Remove("Product")
            Source = ProductData.LoadProduct()
            HttpContext.Current.Cache("Product") = Source
        End If
        End If

        Return Source
End Function

Og det virker gangkse fint, men når jeg så opdatare et felt i min database får jeg ikke loadet det ændrede ind i min cache da det enten ikke er tomt eller ikke er kommet en ny record til i databasen. Hvordan drejer jeg lige den ?

/Websam
Avatar billede snepnet Nybegynder
26. juli 2005 - 12:19 #1
hej websam.

den slags er der mange nye forhold omkring i version 2.0 .... har du mulighed for at bruge det?

med version 1.1 har du ikke så forfærdelig meget hjælp, men når det nu er en cache, er det rimeligt at antage at data ikke nødvendigvis skal være fuldstændig "live", og du kan så sætte en expiration på din cache entry - ville det være tilstrækkeligt.
(der er lidt andre muligheder også).

men ... har du mulighed for at bruge 2.0 - har du (speciel med sql server 2005) nogle forrygende muligheder.

mvh
Avatar billede websam Nybegynder
26. juli 2005 - 12:24 #2
Nej jeg har ikke mulighed for 2.0 endnu så jeg skal have fundet en løsning Kunne jeg ikke som eks. bare opdatare min cache i samme ombæring med at jeg opdatere en given record i min database ?

/Websam
Avatar billede websam Nybegynder
26. juli 2005 - 13:50 #3
Ved at tilføre en variabel til min function ovenfor CacheProduct(Byval Update As String) laver jeg en simpel if sætning der tjekker op på om der er står ja/nej i min variabel og opdatere så min cache ud fra det og det virker :o)

/Websam
Avatar billede snepnet Nybegynder
26. juli 2005 - 14:18 #4
ah... ok - jeg troede det var fordi du ændrede på indholdet i basen udenfor applikationen :o)
mvh
Avatar billede websam Nybegynder
26. juli 2005 - 14:20 #5
Nej det gør jeg ikke det sker direkte i databasen :o)

/Wesbam
Avatar billede snepnet Nybegynder
26. juli 2005 - 14:31 #6
*lolz* en dobbeltmisser :oD
æh .... så din variabel - er det en variabel i basen så?
mvh
Avatar billede snepnet Nybegynder
26. juli 2005 - 14:32 #7
(hvis du bruger 2.0 og sql server 2005 - kan du få sql serveren til at sende besked til din app, om at data er ændret  .... det er lidt cool ;o)
Avatar billede websam Nybegynder
26. juli 2005 - 14:52 #8
Nej variablen er i min function som skrevet ovenfor "CacheProduct(Byval Update As String)" hvis jeg så opdatere skriver jeg ja hvis ikke nej i min variabel :o)

2.0'ern lyder til at blive sjov at rode med men det kommer til at vente lidt endnu

/Websam
Avatar billede snepnet Nybegynder
26. juli 2005 - 15:17 #9
nåh... på den måde - der er der jo ikke den store automatik i :o)
.... så skal du jo explicit angive at du vil opdatere fra basen ?!?
den oplysning skal vel falde på et fornuftigt tidspunkt når applikationen kører.
mvh
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