2014-04-20 98 views
0

什麼是存儲全局數據表的最佳方式,讓任何人訪問我的網站可以讀取並添加到這個同桌?ASP.NET存儲數據全球

我想用下面的代碼:

Shared DT As New DataTable 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    DT.Columns.Add("col1", GetType(String)) 
    DT.Columns.Add("col1", GetType(String)) 
End Sub 

但這將每個頁面加載時間添加新列....

運行的SQL數據庫將是緩慢的我正在編碼的網站。

+1

這個網站運行了一個SQL數據庫。你覺得它太慢了嗎? Facebook運行數據庫,亞馬遜,Ebay等也是如此。它們是否太慢?推特? –

+0

我知道所有關於SQL服務器的速度,我使用了一個日常,但對於這個特定的網站,我需要的東西更快 –

+0

的Sql實際打開一個非常龐大的數據資料對您的網站,如果你在你的錶行太多,你是什麼怎麼辦與會話或viewstates – Trikaldarshi

回答

1

如果數據是全球性的,你可以將其存儲在應用程序中的變量。

Application["table"] = dt; 

你必須將它轉換回WHN取回:

var dt = (DataTable)Application["table"]; 
+1

完美的感謝交配 –

+0

的這個唯一的缺點是,它不能在一個共享功能可以使用,所以我不能做一個AJAX調用來修改該表.... –

+1

您可以訪問共享/靜態功能的應用變量。您將需要使用'HttpContext.Current'去應用程序屬性的引用,但:'HttpContext.Current.Application(「myVar的」)' –

3

使用

會議:如果數據正在被用於單或當前用戶

ViewState的:您還可以使用ViewStates存儲數據

對於您可以將所有用戶通過了applicati它存儲數據:還使用

應用生活

由於@Mike Brind給出的例子,你可以用同樣的方式

這些會話和應用程序走的基本區別是會話,其中作爲應用程序爲所有用戶保存數據當前用戶保存數據。

和對於會話

Session["table"] = dt; 

DataTable dt = (DataTable) Sessions["table"]; 
+0

可以存儲一個數據表到視圖狀態還是你必須把它保存爲一個字符串 –

+2

是的,你可以存儲在ViewState中,並在會話或應用程序變量的任何數據 – Trikaldarshi

+0

哦沒關係歡呼隊友 –