是否可以创建一个可以存储DataSet()的应用程序状态? 我想创建可供任何用户使用的DataSet变量。我怎么能这样做?
谢谢!
答案 0 :(得分:1)
这只是设置
的问题 if(Application["myGlobalDataset"] == null)
Application["myGlobalDataset"] = LoadMyDataSet();
但是,请仔细阅读MSDN(粗体是我的)
应用程序状态是一个可供所有人使用的数据存储库 ASP.NET应用程序中的类。应用程序状态存储在 服务器上的内存,比存储和检索更快 数据库中的信息。与会话状态不同,特定于会话状态 单个用户会话,应用程序状态适用于所有用户和 会话。因此,应用程序状态是存储的有用位置 少量经常使用的数据,不会从一个用户更改为 另一强>
初始化变量的好地方是在Application_Start
文件中找到的global.asax.cs
事件
void Application_Start(object sender, EventArgs e)
{
if(Application["myGlobalDataset"] == null)
Application["myGlobalDataset"] = LoadMyDataSet();
}
并记得在Application_End
事件
void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
if(Application["myGlobalDataset"] != null)
Application["myGlobalDataset"].Dispose();
}
如果您计划修改数据集的内容,请记住您需要阻止对变量的并发访问,因此需要锁定机制。
try
{
Application.Lock()
Dataset ds = Application["myGlobalDataset] as Dataset;
......
}
finally
{
Application.UnLock()
}
锁定一直持续到页面终止处理或超时,但我仍然希望将所有内容都包含在try / finally块中
答案 1 :(得分:0)
所以你只想将DataSet存储在应用程序变量中?
Application [“YourDataSet”] = YourDataSetVariable。
根据您的其他评论,最好将其存储在Session变量中,因为您似乎不断更新信息。