同一个页面用什么保存DataTable好 在同一个页面有个DataTable,有好几个地方要用,使用那个对象保存好呢,有几千条数据用viewstate的话,页面体积会变大用session的话,占服务器内存,还有那些对象可以实现呢,要在页面回发时,这个datatable也能保存就在同一个页面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说是cache吗,这个都是全局的,更加不行了,开2个页面的话不是被覆盖了 怕被覆盖就给它们定义不一样的 Key 楼主的思路有问题,如果是这样的话不是有无数的DataTable要保存。哪个页面要用就去数据库读出这个DataTable,真的很频繁用到的话才考虑用缓存 你这个DataTable 是怎么来的 这个页面的DataTable 是怎么来的 那就让 应用它的地方也怎么来把 存在缓存里面,我给你一个创建缓存和清空缓存的方法,当你不想使用这个缓存,或者对数据进行了增删改,那么你首先要清空这个缓存,然后再创建缓存。缓存最大的好处就是在初次加载的时候慢一点,以后就变的很快了,这也是许多人使用缓存的原因。它可以很好的提高性能。 /// <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); } } 怎样显示缩略图啊? DetailsView点击"编辑"后"消失"了 在repeater控件中的ItemTemplate加入脚本的问题(ASP.NET2.0)。 急急!!!!ASP.NET中C#里用剪切板提示说使用单线程!!! 关于VS2008的一个问题 求Crystal Report 9.2 英文版Http/FTP下载 新手,一个简单的问题,请各位指点: 拆分入库单 问两个和TreeView有关的问题?(在线等,问题解决就结贴!) 运行Duwamish7.0出现的一个错误!在线等待。 为什么我的iframe刷新不了啊 在MVC中Controller中怎么实现弹出对话框
这个页面的DataTable 是怎么来的 那就让 应用它的地方也怎么来把
/// <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);
}
}