2014-04-20 60 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

哦没关系欢呼队友 –