问一个简单问题:在page_load里声明一个dataset,每次启动这个页面都会导致重新fill,如果把fill注释掉,则dataset就为空。
我想让用户登陆的第一次把dataset生成,以后每次调用这个页面的时候都不必重新fill,那么是不是把dataset放到session里就可以了?如果不放到session里,还有没有别的好办法?如果dataset里的数据量很大,比如20-30万条记录的情况下,那种方案更好一点?谢谢。
我是把dataset放到了session里
如果你是整个系统只调一次fill,那么就用session吧。
呵呵,如果有20-30万条记录,放哪里都会让你气的炸机子。 还是放数据库吧。
开个玩笑,你不会一次都取出来吧
每次重新获取是正常的做法
放在Session里面比较浪费服务器资源,是不可取的,特别是在访问量大的情况下
访问数据库,也不能一下fill 20-30条记录啊
如果数据量小的话也为赏不可。
同意楼上的说法,Session是允许你识别、储存和处理同一个浏览器对服务器上某个特定的网络应用程序的若干次请求的上下文信息。如果Session放入dataset在你数据资料很多的时候就很恐怖了!所以还是别放在Session中!
不同意放在Session中,但是可以放在XML中,把XML文件放到相应的目录中然后在读取不就可以不用从数据库中检索了吗
把page_load:里的方法放到服务端是否可以?看看?
我也知道放在Session是自取死路,可是我想知道有什么好方法,还有,如果我们在页面上放一个按钮,点一点它者要重新load页面,有没有什么好的方法,点按钮其他的东西不变。
大家怎么都把 Cache 忽略了??
? if the DATA Is Global or same to everyone? Why not trying Application["DataSet"]? : )
楼上所说的Page类的Cache属性,主要是储存当前页面的Context,当然包括WEB页面的数据连接资源,不必重新连接,即可已使用Cache属性中储存的信息,注意别超过了Cache的存活期!
应该对楼主有没有帮助,不过Control类和Page类中有很多好东西,可以关注!
对本页刷新,下面方法有帮助,但对跨页的,千万不要用session来存储二三十万数据,不现实,也不可能认你存那么多的啊,即使存储了,如果同时有十个用户都来访问,那怎么办?还是再绑定一次的好些。
if(!IsPostBack)
{
绑定数据
}
试试cache
个人意见:
如果查询语句繁琐,查询时间较长,结果少的情况可以存放到viewstate中;
如果查询语句简单,结果很多时,每次fill也可,或者结果存放到临时表中,增加rowsid字段,每次取rowsid>pagecount*pagesize and rowsid<=(pagecount+1)*pagesize
to: webdiyer(webdiyer)
<引用〉楼上所说的Page类的Cache属性</引用〉
<是不是〉主要是储存当前页面的Context</是不是〉
我是对你所说的Cache进行了表述,因为在上班,所以写的比较随意!关于Cache属性的从书上看来的,如有问题请赐教!
用ViewState多好啊
最好不要放在Sesssion中,因为这样的话,浪费了大量的内存,每位fill一下是可行的吧
试试cache
我觉得可能要根据实际的应用环境有关。这取决你的服务器,数据库的性能,数据量的大小,进行一次查询需要的时间,以及用户的数量。你可以把数据存储的以下几个位置:
1.stateview:只能是小规模的数据,同时你要自己把数据进行序列化。
2.直接从数据库中进行读取:这样对你的数据库要求较高,如果你有查询中要进行非关键字,索引进行排序的话,这个方法不可取。
3.使用cache:你把过期时间设为可调整的,这样根据实际应用的情况进行调整以达到最佳效果。
4.session:存在session中应该是处理比较简单的,但可能会对服务器的性能有影响,如果有存,应把超时时间设短,同时确定不使用该数据马上从session中移除,对cache中的也一样。
5.xml:我不太推荐这种方法。实际上从读写磁盘的时间是很长的。但如果是这种比较极端的情况,也可能使用一下:数据库数据量大,且每次查询比较费时
jery_lee(U2-G2000) 跟我的意见相同。做成全局就不是很浪费资源了
每次都fill也挺浪费的