想问个关于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 来传递, 也许重新从数据库加载数据,更加适合,主要看你的数据量