在asp.net中创建全局变量C#

时间:2013-10-21 19:57:02

标签: c# asp.net global-variables

我有一个包含多个页面的Web应用程序。每个页面都调用一个类方法来从数据库中获取数据。其中一些调用是冗余的,这意味着我们多次向数据库发出查询以获取相同的数据。我想查询数据库一次并将结果存储在某个全局变量中,而不是会话中,以便页面可以访问这些变量。我已经尝试过单例模式设计,但在创建对象时它不接受参数。请帮忙

2 个答案:

答案 0 :(得分:3)

使用Application.Cache存储结果,然后在多个页面中访问它。但请记住,此信息将由您网站的所有用户共享。

DataTable dataTable = GetDataFromDatabase();
HttpContext.Current.Cache["CahcedTable"] = dataTable;

要访问它:

DataTable dataTable = HttpContext.Current.Cache["CachedTable"] as DataTable;
if(dataTable != null)
{
     //your code e.g. gridView1.DataSource = dataTable;
}

答案 1 :(得分:0)

使用静态类,它(以及它的所有静态属性/字段)每个applucation域只存在一次(因此,除非你做一些非常具体的thibgs,每个网站一次)