日期:2014-05-18  浏览次数:20460 次

想问个关于DataSet填充数据的问题

vs.net   2003   C#   asp.net   1.1   +   sqlserver   2000

从数据库中获得数据集填充到一个DataSet并显示于页面(page1)的DataGrid之后,接着在用户点击了页面上的某个按钮并跳转到另一个页面(page2)之后,还能不能将page1的DataGrid中的数据复制到page2中DataGrid中(不用再次连接数据库)?
可以的话请问大概要怎么做?

谢谢!!




------解决方案--------------------
请问LZ,那你点Page2的目的是做什么?不是要取第二页的数据吗?为什么还显示第一页的数据
------解决方案--------------------
数据量这么大..

把DataSet的引用放到Session里,再另一页面再访问这个Session
------解决方案--------------------
也可以使用server.transfer方式来传递页面间的大数据
------解决方案--------------------
LZ可以试试
------解决方案--------------------
难道数据集下载到了客户端后

=========

首先,需要澄清,数据集还没有到客户端(这是 Web 程序),到客户端的只有一堆 html 而已

一次请求完成之后,所有请求的内容(内存相关信息)都不存在了,这是由 http 无状态决定的

要多个请求之间访问(不论是否跨页),只有借助其他长期驻留在服务器上的“容器”对象来装载,如 Session, Application, Cache

对于同一个请求跨页访问,可以使用 HttpContext.Item

如,
// a.aspx.cs
Session[ "MySessionKey_911 "] = SomeDataSet;


// b.aspx.cs
DataSet SomeDataSet = Session[ "MySessionKey_911 "] as DataSet;
if(SomeDataSet != null) {
// .....
}

然而,
对于大数据对象,如 DataSet ,通常不建议使用 Session 来传递, 也许重新从数据库加载数据,更加适合,主要看你的数据量