Làm th? nào đ?: Th?c hi?n d?a trên Key ph? thu?c cho d? li?u b? nh? đ?m trong ASP.NET b?ng cách s? d?ng Visual C#.NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 308147 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? th?c hi?n các d? li?u b? nh? đ?m c?a b?ng cách s? d?ng phím d?a trên quan h? ph? thu?c trong m?t Microsoft ASP.NET ?ng d?ng. Các ví d? đó tr?nh bày ? đây bài vi?t t?o ra và chèn m?t S? li?u đ?i tư?ng vào b? đ?m ?n v?i m?t ph? thu?c thi?t l?p trên m?t b? nh? cache nh?p m? b?ng cách tham kh?o khóa c?a nó. Đ? có ví d? c?a d? li?u b? nh? đ?m v?i th?i gian ho?c t?p tin d?a trên quan h? ph? thu?c, xem ph?n "Tham kh?o" ? đây bài vi?t.

Yêu c?u

  • Microsoft Windows 2000 ho?c Microsoft Windows XP
  • Microsoft Internet thông tin máy ch? (IIS)
  • Microsoft.NET Framework
  • Microsoft SQL Server

T?o m?t ASP.NET Web ?ng d?ng

S? d?ng Microsoft Visual C#.NET đ? t?o ra m?t Microsoft ASP.NET Web ?ng d?ng tên là DataCacher:
  1. Microsoft Visual Studio m?.NET.
  2. Trên các T?p tin tr?nh đơn, đi?m đ?n M?i, sau đó b?m D? án.
  3. Trong các D? án m?i h?p tho?i h?p, b?m vào Visual C# các d? án dư?i Các lo?i d? án, sau đó b?m ASP.NET Web ?ng d?ng dư?i M?u.
  4. Trong các V? trí h?p, lo?i DataCacher như tên d? án b?ng cách thay th? m?c đ?nh WebApplication # tên trong các Đư?ng d?n URL. N?u b?n đang s? d?ng máy ch? đ?a phương, b?n có th? đ? l?i như tên máy ch? http://localhost, đ?t v? trí http://localhost/DataCacher.

Xây d?ng các h?nh th?c Web

LƯU ?: M? đư?c bao g?m trong ph?n này đư?c gi?i thích trong nhi?u hơn n?a chi ti?t trong ph?n "Ch?y b? lu?t".

Đ? xây d?ng d? li?u b? nh? đ?m m?u:
  1. Thêm m?t m?u Web m?i tên là DataCacheSample.aspx đ?n c?a b?n d? án trong Visual Studio.NET:
    1. Nh?p chu?t ph?i vào nút d? án, gi?i pháp Thám hi?m.
    2. Nh?p vào Thêm, sau đó b?m Thêm m?i WebForm.
    3. Tên DataCacheSample.aspx bi?u m?u Web.
    4. Nh?p vào M?.
  2. Trên các Thi?t k? xem tab cho m?u Web trong các ph?ng thu tr?c quan.NET IDE (môi trư?ng phát tri?n tích h?p), thêm m?t nút m?u Web trang:
    1. S? d?ng m?t ho?t đ?ng kéo và th? đ? di chuy?n m?t m?u Web nút trên trang.
    2. Nh?n vào đây đ? ch?n nút m?i. Thay đ?i các ID b?t đ?ng s?n đ? CreateNewOrCached, và sau đó thay đ?i các Văn b?n b?t đ?ng s?n đ? T?o m?i ho?c đư?c lưu tr?.
  3. Thêm m?t nút m?u Web th? hai:
    1. S? d?ng m?t ho?t đ?ng kéo và th? đ? di chuy?n m?t m?u Web nút lên trang t? h?p công c?.
    2. Nh?n vào đây đ? ch?n nút m?i. Thay đ?i các ID b?t đ?ng s?n đ? Lo?i b?, và sau đó thay đ?i các Văn b?n b?t đ?ng s?n đ? Lo?i b?.
  4. Thêm m?t nh?n m?u Web:
    1. S? d?ng m?t ho?t đ?ng kéo và th? đ? di chuy?n m?t nh?n m?u Web lên trang t? h?p công c?.
    2. Nh?n vào đây đ? ch?n nh?n m?i. Thay đ?i các ID b?t đ?ng s?n đ? CacheStatus, và sau đó xóa các Văn b?n b?t đ?ng s?n.
  5. S? d?ng m?t ho?t đ?ng kéo và th? đ? di chuy?n m?t m?u Web DataGrid đi?u khi?n trên trang t? h?p công c?. Đ? ki?m soát này, đ? l?i các ID b?t đ?ng s?n thi?t l?p đ? thi?t l?p m?c đ?nh c?a DataGrid1 trong c?a s? thu?c tính.

Thêm m?

Thêm m? đ? chèn b? nh? cache m?c đ? xoá b? nh? cache n?i dung, và đ? xây d?ng ph? thu?c b? đ?m ?n:
  1. Nh?p chu?t ph?i vào trang .aspx, và sau đó nh?p vào Xem m? m? trang m?-đ?ng sau.
  2. Đ?i v?i m?u này, h?y ch?c ch?n r?ng các System.Data.SqlClient, các System.Data, và các System.web.caching không gian tên đư?c b? sung vào không gian tên li?t kê trong m? phía sau Trang. N?u b?n s? d?ng Visual Studio. NET đ? t?o m?u Web, không gian tên c?a b?n b?ng li?t kê trong trang m?-đ?ng sau s? trông gi?ng như sau:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Web.Caching;
    						
    LƯU ?: B?n s? nh?n đư?c c?nh báo n?u không gian tên ho?c là không đư?c li?t kê, ho?c n?u t?n t?i m?t danh sách d? ph?ng c?a m?t không gian tên.
  3. Trên các Thi?t k? xem tab, b?m đúp vào các CreateNewOrCached nút đ? m? các CreateNewOrCached_Click s? ki?n trong trang m?-đ?ng sau.
  4. Thêm m? sau đây đ? các CreateNewOrCached_Click s? ki?n:
    private void CreateNewOrCached_Click(object sender, System.EventArgs e) {
    	//Attempt to create a DataSet object from the cache entry with the key "CacheDataSetEmployees" 
    	object CacheDataSetEmployees = (DataSet)Cache.Get("CacheDataSetEmployees");
    	
            //Check to see if the object is null
    	if(CacheDataSetEmployees == null)
    	{
    	     //Set a value for the cache entry that will serve as the 
    	     //key for the dependency to be created on
    	     Cache["SqlPubsEmployees"] = "SomeValue";
    
    	     //Create the array of cache key item names
    	     string[] keys = new String[1];
    	     keys[0] = "SqlPubsEmployees";
    				
    	     DataSet ds = new DataSet();
    	     //Create the connection and pass in the ConnectionString
    	    SqlConnection MySqlConn = new SqlConnection("Server=kronicas17;Trusted_Connection=Yes;initial catalog=pubs");
    	     //Create the Data Adapter and pass in the command text and connection to use
    	     SqlDataAdapter MySda = 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 cachekeys (keys)
    	     CacheDependency MyDependency = new CacheDependency(null, 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;
            }
            //Bind the DataGrid to the DataSource
    	DataGrid1.DataBind();
    }
    						
    LƯU ?: B?n có th? c?n ph?i s?a đ?i các ConnectionString trong m? trong bư?c này đ? ho?t đ?ng đúng v?i máy ch? SQL c?a b?n. Đ?i v?i m? đ? ho?t đ?ng đúng, b?n c?n ph?i có máy ch? SQL Quán rư?u cơ s? d? li?u đư?c cài đ?t.
  5. Trên các Thi?t k? xem tab cho trang DataCacheSample.aspx, b?m đúp vào các Lo?i b? nút đ? m? các Remove_Click s? ki?n trong trang m?-đ?ng sau.
  6. Thêm m? sau đây đ? các Remove_Click s? ki?n:
    private void Remove_Click(object sender, System.EventArgs e)
         {
    	//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";
         }
    					
  7. Thêm các y?u t? sau đây vào t?p tin Web.config gi?a <system.web> and </system.web>:
    <identity impersonate=”true” />
    
  8. Trên các T?p tin tr?nh đơn, nh?p vào Lưu t?t c? Lưu bi?u m?u Web và các d? án liên quan khác t?p tin.
  9. Trên các Xây d?ng Menu trong Visual Studio.NET IDE, b?m Xây d?ng đ? xây d?ng các d? án.

Ch?y các m?

  1. Đ? ch?y m?, b?m chu?t ph?i vào trang DataCacheSample.aspx trong gi?i pháp Explorer, và sau đó nh?p vào Xem trong Tr?nh duy?t.
  2. B?m vào các CreateNewOrCached nút; các CacheStatus nh?n s? hi?n th? "M?i Phiên b?n t?o" và các DataGrid ki?m soát có dân cư.

    GHI CHÚ:
    • Các Phiên b?n m?i t?o ra thi?t l?p cho các CacheStatus nh?n là k?t qu? c?a b? nh? cache phím CacheDataSetEmployees đó không đư?c nêu ra referencing m?t b? nh? cache h?p l? m?c khi nh?p các s? ki?n. Trong trư?ng h?p này, các S? li?u đư?c t?o ra, các DataGrid ki?m soát là ràng bu?c đ? các S? li?u, và các S? li?u nh?p vào b? đ?m ?n b?ng cách s? d?ng ch?a khóa b? nh? cache "CacheDataSetEmployees".
    • T? bư?c trư?c b?n nên có c?ng nh?n th?y nh?ng sáng t?o c?a các m?i CacheDependency đ?i tư?ng đư?c đ?t tên MyDependency. Các MyDependency đ?i tư?ng đư?c li?t kê như là ph? thu?c cho các CacheDataSetEmployees m? khi nó đư?c đưa vào b? đ?m ?n b?ng cách s? d?ng các Chèn phương pháp. Đi?u quan tr?ng c?n lưu ? r?ng, trong khi m?u này là ch?ng t? chính d?a trên quan h? ph? thu?c, b?n có th? s? d?ng các lo?i s? ph? thu?c trên b? nh? đ?m tiêu chí, ch?ng h?n như các t?p tin ho?c m?t th?i gian đóng d?u, như t?t.
  3. B?m vào các CreateNewOrCached nút m?t l?n n?a. Các CacheStatus nh?n s? hi?n th? "phiên b?n cache, mà bi?u r?ng các cache S? li?u đư?c s? d?ng. B?n có th? xác minh r?ng đây là d? li?u đư?c lưu tr? b?ng cách s?a đ?i m?t trong các h? sơ đư?c hi?n th? trong các Quán rư?u cơ s? d? li?u b?ng cách s? d?ng phân tích truy v?n SQL ho?c công c? khác. Sau khi b?n S?a đ?i các b?n ghi, b?m các CreateNewOrCached nút m?t l?n n?a. Lưu ? r?ng nh?ng thay đ?i b?n đ? th?c hi?n không đư?c hi?n th?. Nh?p vào Lo?i b?, sau đó b?m CreateNewOrCached m?t l?n n?a đ? xem các thay đ?i mà b?n t?o ra cho các cơ s? d? li?u.
  4. B?m vào các Lo?i b? nút. Các CacheStatus nh?n hi?n th? "B? nh? Cache Entry xoá". M?c cache v?i phím"SqlPubsEmployees" đư?c l?y ra b?ng cách s? d?ng các Cache.Remove phương pháp trong các Remove_Click s? ki?n. B?i v? b?n đ? li?t kê các m?ng (trong đó có ch?a khóa b? nh? cache tên c?a kho?n m?c đ? xoá) v?i MyDependency khi b?n t?o ra nó, các "CacheDataSetEmployees" kho?n m?c b? lo?i b? do b?n t?o ra nó b?ng cách s? d?ng các Chèn phương pháp và b?ng cách tham kh?o MyDependency như c?a nó ph? thu?c tham s?.
  5. B?m vào các CreateNewOrCached nút m?t l?n n?a. Các CacheStatus nh?n hi?u hi?n th? thông báo "M?i Phiên b?n t?o" b?i v? các S? li?u đư?c t?o ra d?a trên th?c t? là nó không c?n t?n t?i trong b? nh? cache khi s? ki?n này b?n.
  6. B?n c?ng có th? nh?n th?y r?ng các DataGrid đi?u khi?n đư?c hi?n th? như dân cư v?i các d? li?u ngay c? sau khi các S? li?u kho?n m?c đư?c l?y ra t? b? nh? cache. Đây là k?t qu? c?a các EnableViewState b?t đ?ng s?n đang thi?t l?p đ? S? th?t Theo m?c đ?nh. Đi?u này cho phép nhà nư?c ki?m soát đư?c duy tr?, và đi?u này không liên quan đ?n các thao tác nh?p b? nh? cache trong các M?. Cho đ?i di?n tr?c quan hơn cho s? ki?m soát nhà nư?c t?i m?i giai đo?n, b?n có th? thi?t l?p EnableViewState đ? Sai.
LƯU ?: Trong regards cho ví d? này, trong m?t t?nh h?nh th?c t?, b? nh? cache quan tr?ng (các m?ng phím m?ng trong m?u m?) có th? gi? b? nh? cache phím đ? bàn khác ho?c m?t hàng b? nh? cache khác, do đó, r?ng n?u m?t trong nh?ng b?n ghi đ? là thay đ?i, b? nh? cache m?c nh?p)CacheDataSetEmployees trong m?u này) cho kho?n m?c đ? đư?c t?o ra v?i đi?u này ph? thu?c s? b? xóa b? nh? cache là t?t. B?n có th? sau đó ho?t đ?ng như c?n thi?t b?ng cách s? d?ng callbacks; đ? có thêm thông tin v? callbacks, tham kh?o các "Tham kh?o" ph?n trong bài vi?t này.

Gi?i đáp th?c m?c

  • Các tên chính đư?c li?t kê trong b? nh? cache phím m?ng ph?i đư?c g?n v?i m?t hàng th?c t? b? nh? cache. N?u h? không, là m?c mà các ph? thu?c đư?c s? d?ng không đúng cách gi? l?i trong b? nh? cache. M?t ví d? v? đi?u này s? là n?u các phím m?ng trong m?u m? đ? t? ch?c m?t m?ng y?u t? và các nguyên t? đư?c đ?t tên chính b? nh? cache không h?p l?.
  • B? nh? cache phím m?ng có không có ngh?a là c? th? cho đ?n khi nó đư?c s? d?ng v?i m?t CacheDependency đ?i tư?ng.
  • N?u b?n chèn m?t m?c vào b? nh? cache v?i không ph? thu?c hay h?t h?n khác, ki?m soát th?i gian ch?y khi hàng đư?c l?y ra t? các b? nh? cache.

THAM KH?O

Đ? bi?t thêm thông tin v? vi?c s? d?ng các CacheItemRemovedCallback đ?i bi?u, xem Web site sau c?a Microsoft:
CacheItemRemovedCallback Delegate
http://msdn2.Microsoft.com/en-US/Library/System.web.caching.cacheitemremovedcallback (vs.71) .aspx
LƯU ?: The CacheItemRemovedCallback đ?i bi?u đ?nh ngh?a m?t phương pháp g?i l?i đ? thông báo cho các ?ng d?ng khi m?t m?c đư?c lưu tr? đư?c l?y ra t? b? nh? cache.

Đ? bi?t thêm v? các CacheDependency l?p, xem Web site sau c?a Microsoft:
CacheDependency l?p
http://msdn2.Microsoft.com/en-US/Library/System.web.caching.cachedependency (vs.71) .aspx
LƯU ?: The CacheDependency l?p theo d?i ph? thu?c b? nh? cache, có th? là các t?p tin, thư m?c, ho?c phím đ? các đ?i tư?ng khác trong b? nh? cache c?a b?n ?ng d?ng.

Đ? bi?t thêm thông tin v? các tùy ch?n b? nh? đ?m cho ASP.NET, ch? đ?n Microsoft sau.NET Framework SDK tài li?u:
Thêm kho?n m?c vào b? đ?m ?n
http://MSDN.Microsoft.com/en-US/Library/cc511535.aspx
Cho thông tin thêm v? các tùy ch?n b? nh? đ?m cho ASP.NET, b?m vào nh?ng con s? bài vi?t dư?i đây đ? xem các bài vi?t trong Microsoft Ki?n th?c cơ b?n:
305140 ASP.L? tr?nh NET
307225 THÔNG TIN: ASP.R?NG t?ng quan v? b? nh? đ?m

Thu?c tính

ID c?a bài: 308147 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
T? khóa: 
kbcaching kbdatabase kbhowtomaster kbmt KB308147 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:308147

Cung cấp Phản hồi

 

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