上面代码应该是: if (Cache["productDataGrid"] == null)
写错了, 写成: if (Cache["productDataGrid"] == dt)了
写错了, 写成: if (Cache["productDataGrid"] == dt)了
解决方案 »
- 静态页面生成问题
- 如何用.net开发一个简单的学生档案系统
- sql语句
- ActiveX中按钮有没有办法和web服务器进行交互
- BeginRequest里的简单问题
- 各位高手帮帮我怎么样才能实现将c#做的winform程序放到asp.net网站上
- 我的Cookie遇中文显示为乱码怎么办?
- 在Panel中动态插入控件后产生的问题
- .net 用jmail发送邮件,发布本机或者本机测试都发送成功,发布到服务器发送邮件就失败。
- WebForm 的构造器加上参数有没有用?举例说明?在WinForm中很常见的,不知道Web上怎么用。
- 关于ASP.Net上传与下载文件的问题
- SQL 2003 转 SQL2005 的一个简单布属问题.Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|
if (Cache["productDataGrid"] == null)
{
//生成DataTable的代码, 并且加入Cache
}
else
{
dt = (DataTable)Cache["productDataGrid"];
}
DataTable dt;
if (Cache["productDataGrid"] == null) //如果cache为空,则获取数据源并加入到cache中
{
//生成DataTable的代码, 并且加入Cache
}
else
{
dt = (DataTable)Cache["productDataGrid"]; // cache不为空则直接赋给Datatable
}正如楼上如所,lz 写错了
----------------------------------------
if (Cache["productDataGrid"] == null)
{
//
}
else
{
dt = (DataTable)Cache["productDataGrid"];
-------------------------
if (dt.DataSet != null)
{
dt.DataSet.Tables.Remove(dt);
}
--------------------------
}想了一下, 原因应该是, DataTable有一个属性叫DataSet, 刚建立时它为空
一旦将DataTable加到一个DataSet后, 如MyDataSet.Tables.Add(dt),
那么这个DataTable的DataSet的属性不再是空, 而变成MyDataSet了.加入Cache后, DataTable的那个DataSet属性并没有自动清空, 第二次访问页面,
这个Cache中的DataTable还是保留原来那个实际已经不存在的DataSet了.
{
dt.DataSet.Tables.Remove(dt);
}---------------
正确!