在ViewState或会话状态中存储DataSet

时间:2012-02-22 15:56:25

标签: asp.net session viewstate state-management

目前我将DataSet存储在ViewState中,但这可能会对页面的性能产生影响。

您能否建议我是否可以使用Session或ViewState或任何不影响性能的替代方案?

4 个答案:

答案 0 :(得分:3)

为什么需要存储整个数据集? 如果必须,请在会话中进行。如果您的会话是“inproc”,则数据集对象将存储在内存中(因为没有序列化,所以可以节省一些性能)。

如果我是你,我会分析代码并尝试不将整个数据集存储在任何会话中,而不是视图状态 - 必须有一种优化代码的方法。

希望它有所帮助。

答案 1 :(得分:2)

如果要存储整个dataSet,总会有Caching方法,它允许您存储具有良好性能的巨大变量。这是一个如何将变量存储到Cache中的示例。

Cache["CacheItem1"] = "Cached Item 1";

这是如何在以下之后检索变量:

string cachedString;
cachedString = (string)Cache["CacheItem"];

答案 2 :(得分:1)

在viewstate或session中存储数据集是不明智的,但在这两者中,将其存储在会话中肯定比viewstate更好。从那时起,在服务器上处理序列化/反序列化。而不是将序列化数据也发送到客户端。

答案 3 :(得分:1)

因为我认为在会话中存储可能对你有帮助,但你需要考虑以下几点

  1. 有多少用户正在使用您的应用程序?
  2. 数据集的大小是多少?如果它更多,那么不要将它存储在会话中。
  3. 我建议您查看您的要求,如果可能,您可以存储在缓存中,但它是应用程序级别。作为会话每个用户都有自己的会话。

    您可以查看以下链接

    1. Session V/s Viewstate