1

存储与动态控件有关的数据的最佳选择是什么。这是我的场景。

  1. 随时可以检索大约 5 到 15 个主表。
  2. 动态控件的类型可以是 TextBox、DropDownList、ListBox、GridView。
  3. 硕士不会在回发时改变,但页面会在同一个会话中产生许多回发。
  4. 我正在使用带有 .NET 2.0 的 SQLServer 2005

作为更有经验的用户,您是否建议从数据库中填充这些控件中的项目或允许每个控件的视图状态来维护项目列表?我从更快的性能角度来看这个。另外,能否请您提供您的建议的理由。

也欢迎任何其他建议。让我知道,以防您需要更多信息。

谢谢 - 拉贾

4

2 回答 2

1

这取决于。正如 Aaron 所提到的,您存储在视图状态中的所有内容都必须从客户端上传回服务器。对于互联网站点,这通常会使视图状态成为存储表格数据的非常糟糕的地方。对于客户端可能有100Mbs上传带宽的内部网站,这没什么大不了的,而 Viewstate 可能是一个更好的地方;如果重建此数据的数据库查询成本很高,则尤其如此。

也就是说,许多 Intranet 站点最终被移植以支持在家工作的员工并突然发现自己在 Internet 环境中工作,因此您可能仍希望牢记类似 Internet 的性能限制。在这种情况下,如果您的数据库查询最终成为瓶颈,您可能会考虑使用索引/物化视图甚至单独的表,您可以在其中临时插入此数据以进行快速检索,以帮助加快处理速度。

于 2009-12-28T15:59:27.253 回答
0

在您的情况下,我肯定会在数据库中查找数据,而不是在 ViewState 中存储任何表格数据。存储在 ViewState 中的所有内容都会在每次回发时从客户端发送回服务器。它是未加密的、使用过的、重新加密的,然后发回,这比查询数据库的成本要高得多。

像 id 之类的小东西可以很好地存储在 ViewState 中,但不能存储整个数据表。

于 2009-12-28T15:19:54.180 回答