Het implementeren van afhankelijkheden op basis van een sleutel voor gegevens in ASP-caching.NET met Visual Basic.NETTO

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 312358 - Bekijk de producten waarop dit artikel van toepassing is.
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Gebruik deze stapsgewijze handleiding te implementeren op basis van sleutel afhankelijkheden voor gegevens in een ASP-caching.NETTO-toepassing.

Dit in het volgende voorbeeld wordt gemaakt en voegt eenData setobject in een cache met een afhankelijkheid instellen op een andere vermelding in de cache artikel door te verwijzen naar de sleutel. Voor meer informatie en voorbeelden van gegevens caching met op basis van tijd of bestands afhankelijkheden, Zie deVERWIJZINGENin deze sectie artikel.

Terug naar boven

Vereisten

De volgende lijst worden de aanbevolen hardware, software, net werk infrastructuur en service packs die u nodig hebt:
  • Microsoft Windows 2000 of Microsoft Windows XP.
  • Microsoft Internet Information Services (IIS).
  • Microsoft..NET Framework.
  • Microsoft SQL Server.
Terug naar boven

Maak een ASP-pagina.NET Web toepassing met Visual Basic.NETTO

De volgende procedure maakt u een nieuwe ASP-pagina.NET Web toepassing met de naamDataCacher
  1. Start Microsoft Visual Studio.NET.
  2. Op deBestandhet menuNieuwe, en klik vervolgens opProject.
  3. In deNieuw Projecthet dialoog venster onderProject typen, klik opVisual Basic-projecten. OnderSjablonen, klik opASP-PAGINA.NET Web toepassing.
  4. In deLocatievak, vervangenWebApplication #met de nieuwe project naam:DataCacher. Als u de lokale server gebruikt, laat u de servernaamhttp://localhost. HetLocatievak er ongeveer zo uitziet:
    http://localhost/DataCacher
Terug naar boven

Het Web formulier maken

OpmerkingVoor meer informatie, Zie de Run" de Code"sectie verderop in dit artikel.
  1. Een nieuwe web formulier met de naam toevoegenDataCacheSample.aspxuw project in Visual Studio.NET. Hiertoe voert u de volgende stappen:
    1. Rechter muis knop op het knoop punt project in de Solution Explorer WijsToevoegen, en klik vervolgens opNieuwe WebForm toevoegen.
    2. Naam van het web formulierDataCacheSample.aspx, en klik vervolgens opOpen.
  2. In de Visual Studio.NETTO geïntegreerde ontwikkeling Environment (IDE), overschakelen naar de ontwerpweergave.
  3. Een web formulier knop toevoegen aan de pagina:
    1. Sleep een knop WebForm naar de pagina.
    2. Selecteer de knop WebForm. Wijziging deIDeigenschapCreateNewOrCached, en wijzig deTeksteigenschapMaak nieuwe of in de cache.
  4. Een tweede WebForm knop toevoegen:
    1. Slepen een ander WebForm knop naar de pagina en plaats deze na deCreateNewOrCachedknop.
    2. Klik op de knop WebForm, wijzigt u deIDeigenschapRemoveEntry, en wijzig deTeksteigenschapRemoveEntry.
  5. Een Label WebForm toevoegen:
    1. Slepen een web formulier label naar de pagina uitWerkset.
    2. Het label WebForm selecteert en wijzigt u deIDeigenschapCacheStatus,, en schakel deTeksteigenschap.
  6. Een DataGrid toevoegen:
    1. Slepen een web formulierDataGridnaar de pagina bepalen. De standaard-ID-eigenschap vanDataGrid1.
Terug naar boven

Voeg de code toe

Voeg code invoegen items in cache, items in cache verwijderen en de cacheafhankelijkheid van de samens tellen:
  1. Rechter muis knop op de ASPX-pagina en klik vervolgens opCode weer gevende code weer geven.
  2. De volgende naam ruimten de nam esp ace-vermelding toevoegen:
    Imports System.Data.SqlClient
    Imports System.Web.Caching
    						
    OpmerkingAls u een naam ruimte weglaat of als er een redundante lijst van naam ruimten, ontvangt u een waarschuwings bericht.
  3. Overschakelen naar de ontwerpweergave.
  4. Dubbel klik op deCreateNewOrCachedknop wilt weer geven van de code voor deCreateNewOrCached_Clickde gebeurtenis. Voeg de volgende code om deCreateNewOrCached_Clickde gebeurtenis.

    OpmerkingDeze code moet u de Pubs SQL Server installeren de data base.
         Private Sub CreateNewOrCached_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreateNewOrCached.Click
            ' Create a DataSet object from the cache entry with the
            ' CacheDataSetEmployees key.
            Dim CacheDataSetEmployees As Object = CType(Cache.Get("CacheDataSetEmployees"), DataSet)
    
            ' Verify if the object is null.
            If (CacheDataSetEmployees Is Nothing) Then
    
                ' Set a value for the cache entry that serves as the 
                ' key for the dependency.
                Cache("SqlPubsEmployees") = "SomeValue"
    
                ' Create the array of cache key item names.
                Dim keys() As String = {"SqlPubsEmployees"}
    
    
                Dim ds As DataSet = New DataSet()
                ' Create the connection and pass in the ConnectionString.
                Dim MySqlConn As SqlConnection = New SqlConnection("Server=localhost;Database=Pubs;uid=sa;pwd=")
                ' Create the Data Adapter and pass the command text and 
                ' connection to use.
                Dim MySda As SqlDataAdapter = New SqlDataAdapter("SELECT TOP 10 * FROM Employee", MySqlConn)
                ' Populate the DataTable "Employees" in the DataSet.
                MySda.Fill(ds, "Employee")
                ' Set the DataGrid's DataSource to the "Employee" DataTable.
                DataGrid1.DataSource = ds.Tables("Employee")
    
                ' Create a dependency object referencing the array of cache 
                ' keys (keys).
                Dim MyDependency As New CacheDependency(Nothing, keys)
    
                ' Insert the DataSet into Cache with a dependency on 
                ' MyDependency
                Cache.Insert("CacheDataSetEmployees", ds, MyDependency)
                MySqlConn.Close()
    
                ' Display the status of the DataSet/Cache Entry.
                CacheStatus.Text = "New Version Created"
    
    
            Else
    
                ' Display the status of the DataSet/Cache Entry.
                CacheStatus.Text = "Cached Version Used"
                ' Set the DataSource to the cached version of the DataSet.
                DataGrid1.DataSource = CacheDataSetEmployees
            End If
    
            ' Bind the DataGrid to the DataSource.
            DataGrid1.DataBind()
    
        End Sub
    						
    OpmerkingWijzig deConnectionStringin de bovengenoemde code correct werkt met uw SQL Server.
  5. Schakel over naar de ontwerpweergave van de DataCacheSample.aspx pagina.
  6. Dubbel klik op deRemoveEntryweer geven om deRemoveEntry_Clickgebeurtenis code.
  7. Voeg de volgende code om deRemoveEntry_Clickgebeurtenis:
    Private Sub RemoveEntry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RemoveEntry.Click
            ' Remove the cache item listed in the CacheKeys array (keys).
            Cache.Remove("SqlPubsEmployees")
    
            ' Display the status of the cache item.
            CacheStatus.Text = "Cache Item Removed"
    End Sub
    					
  8. Op deBestandmenu, klikt u opAlles opslaanhet web formulier en andere bijbehorende project opslaan bestanden.
  9. Compileer het project: op deBuildin het menu van Visual Studio.NETTO IDE, klikt u opOplossing bouwen.
Terug naar boven

De code wordt uitgevoerd

  1. Rechter muis knop op deDataCacheSample.aspxpagina in de Solution Explorer en klik vervolgens opWeer geven in Browser.
  2. Klik op deCreateNewOrCachedknop. HetCacheStatus,label wordt weer gegevenNieuwe versie gemaakt, en deDataGridbesturings element wordt gevuld.

    Notities:
    • HetNieuwe versie gemaaktinstelling voor deCacheStatus,label wordt weer gegeven omdat deCacheDataSetEmployeescache-sleutel niet verwijst naar een geldige cache-item wanneer u de gebeurtenis. In dit geval deData setwordt gemaakt, deDataGridbesturings element is gebonden aan deData set, en deData setin de cache wordt ingevoerd met behulp van deCacheDataSetEmployeescache-sleutel.
    • Een nieuweCacheDependency-object naamMyDependencywordt gemaakt. HetMyDependencyobject wordt weer gegeven als de afhankelijkheid van deCacheDataSetEmployeesobject wanneer deze wordt toegevoegd aan de cache via deInvoegenmethode. Hoewel in dit voorbeeld op basis van sleutel afhankelijkheden wordt u kunt ook andere typen afhankelijkheid caching criteria, zoals bestand of tijds tempel.
  3. Klik op deCreateNewOrCachedknop opnieuw.

    U ziet dat deCacheStatus,label wordt weer gegevenVersie met cache gebruikt. Dit betekent dat de cacheData setwordt gebruikt. Wijzigen om te controleren of deze gegevens in de cache, een van de de weer gegeven records in de data base Pubs via SQL Query Analyzer of een ander hulp programma. Nadat u de record wilt wijzigen, klikt u op deCreateNewOrCachedknop opnieuw. U ziet dat de wijzigingen worden niet weer gegeven. Klik opRemoveEntryen klik vervolgens opCreateNewOrCachedopnieuw wilt zien welke wijzigingen u hebt aangebracht in de data base.
  4. Klik op deRemoveEntryknop.

    U ziet dat deCacheStatus,label wordt weer gegevenCache-Item verwijderd. De cache-item met deSqlPubsEmployeessleutel wordt verwijderd met behulp van deCache.Removemethode in hetRemoveEntry_Clickde gebeurtenis. De matrix met de sleutel Cachenaam van de verwijderde object is aangeboden metMyDependencyWanneer deze wordt gemaakt. HetCacheDataSetEmployeesitem verwijderd omdat het is gemaakt met behulp van deInvoegenmethode en verwijzingenMyDependencyAls de parameter afhankelijkheid.
  5. Klik opCreateNewOrCachedopnieuw.

    U ziet dat deCacheStatus,label wordt weer gegevenNieuwe versie gemaakt. Data set wordt gemaakt op basis van het feit dat zij niet langer Er bestaat in de cache als de gebeurtenis wordt geactiveerd.

    U ziet ook dat deDataGridbesturings element wordt weer gegeven zoals gevuld met gegevens zelfs na deData setitem is verwijderd uit de cache. Dit komt doordat deEnableViewStateeigenschap is ingesteld opTruestandaard. Deze behoudt de status van het besturings element en is niet met betrekking tot de cache-vermelding manipulatie in de code. Voor een meer visuele vertegenwoordiging in elke fase van het besturings element staat stellen deEnableViewStatenaarFalse.
In een concrete situatie de cache array (in deze sleutel bijvoorbeeld detoetsenmatrix) kan cache toetsen voor andere tabellen of andere items in cache bevatten. Als een van deze items wijzigt, vervolgens de cachevermelding (in dit voorbeeldCacheDataSetEmployees) voor het artikel gemaakt met deze afhankelijkheid wordt verwijderd uit de cache. Als u wilt kunt u reageren via een callback. Voor meer informatie over callbacks, Zie het gedeelte "Verwijzingen" verderop in dit artikel.

Terug naar boven

Problemen oplossen

  • De sleutel namen in de cache toetsen-matrix moeten worden werkelijke cache-items zijn gekoppeld. Als dat niet het geval is, het item waarvoor de afhankelijkheid wordt niet bewaard in de cache goed - bijvoorbeeld als de matrix sleutels in de voorbeeldcode bevat een andere matrix element en het element is ingesteld op een ongeldige cache sleutel naam.
  • De cache sleutels array heeft geen specifieke betekent totdat het gebruikt in combinatie met eenCacheDependency-object.
  • Als u een item in de cache met geen afhankelijkheid invoegen of andere verloop en de run time controle bepaalt wanneer het item te verwijderen uit de cache.
Terug naar boven

Referenties

Voor meer informatie overCacheItemRemovedCallback, gaat u naar de volgende Microsoft-website:
CacheItemRemovedCallback gemachtigde
(vs.71) http://msdn2.Microsoft.com/en-us/library/System.web.caching.cacheitemremovedcallback. aspx
OpmerkingCacheItemRemovedCallbackdefinieert een callbackmethode van kennisgevingen voor toepassingen wanneer een cache-item wordt verwijderd uit de cache.

Voor meer informatie over deCacheDependency-klasse, gaat u naar de volgende Microsoft-website:
CacheDependency-klasse
(vs.71) http://msdn2.Microsoft.com/en-us/library/System.web.caching.CacheDependency. aspx
De CacheDependency-klasse tracks cache afhankelijkheden, zoals bestanden, mappen of de toetsen op andere objecten in de cache van de toepassing.

Voor een beknopt overzicht van de verschillende cacheopties beschikbaar voor ASP-pagina.NET, Ga naar de volgende Microsoft-website:
Items toevoegen aan de cache
http://msdn.Microsoft.com/library/default.asp?url=/library/en-us/cpguide/HTML/cpconaddingitemstocache.ASP
Voor meer informatie klikt u op de artikel nummers hieronder om de artikelen worden weer gegeven in de Microsoft Knowledge Base:
305140INFO: ASP-PAGINA.NETTO-overzicht
307225ASP-PAGINA.NETTO caching overzicht
Terug naar boven

Eigenschappen

Artikel ID: 312358 - Laatste beoordeling: maandag 24 februari 2014 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Trefwoorden: 
kbnosurvey kbarchive kbcaching kbdatabase kbhowtomaster kbmt KB312358 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:312358

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com