同一个页面用什么保存DataTable好

yuji821 2011-09-14 10:04:34
在同一个页面有个DataTable,有好几个地方要用,使用那个对象保存好呢,有几千条数据

用viewstate的话,页面体积会变大
用session的话,占服务器内存,

还有那些对象可以实现呢,要在页面回发时,这个datatable也能保存

就在同一个页面
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuawang 2011-09-15
  • 打赏
  • 举报
回复
楼主的思路有问题,如果是这样的话不是有无数的DataTable要保存。哪个页面要用就去数据库读出这个DataTable,真的很频繁用到的话才考虑用缓存
ws20110318 2011-09-15
  • 打赏
  • 举报
回复
存在缓存里面,我给你一个创建缓存和清空缓存的方法,当你不想使用这个缓存,或者对数据进行了增删改,那么你首先要清空这个缓存,然后再创建缓存。缓存最大的好处就是在初次加载的时候慢一点,以后就变的很快了,这也是许多人使用缓存的原因。它可以很好的提高性能。
/// <summary>
/// 添加Cache缓存
/// </summary>
/// <param name="key">所添加缓存的数据库表名</param>
/// <param name="connstr">连接字符串</param>
/// <returns>DataTable</returns>
public static DataTable Get(string key,string connstr)
{
if (HttpContext.Current.Cache[key] == null)
{
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from "+key,conn);
DataTable dt = new DataTable();
sda.Fill(dt);
conn.Close();
HttpContext.Current.Cache.Add(key, dt, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
}

return HttpContext.Current.Cache[key] as DataTable;
}

/// <summary>
/// 移除Cache缓存
/// </summary>
/// <param name="key">所移除的数据库表名</param>
public static void Remove(string key)
{
if (HttpContext.Current.Cache[key] != null)
{
HttpContext.Current.Cache.Remove(key);
}
}
  • 打赏
  • 举报
回复
你这个DataTable 是怎么来的
这个页面的DataTable 是怎么来的 那就让 应用它的地方也怎么来把
yuguojiangnan 2011-09-15
  • 打赏
  • 举报
回复
还是用Session吧
ciznx 2011-09-14
  • 打赏
  • 举报
回复
怕被覆盖就给它们定义不一样的 Key
yuji821 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xugan666 的回复:]

保存在缓存中得了····
[/Quote]
你说是cache吗,这个都是全局的,更加不行了,开2个页面的话不是被覆盖了
xugan666 2011-09-14
  • 打赏
  • 举报
回复
保存在缓存中得了····

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧