能否实现把DataSet从一个页面传到另一个页面? 一个最简单的方法就是用Session传递数据。也可以用Application 与Cache,不过就要自己写一些代码识别数据属于哪个用户的了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最简单的方法用static DataSet 如果数据是基于每个访问者的,可以用Session,如果所有用户都需要访问,可以用Cache或Application变量来缓存起来。 什么时候用什么时候生成,只需从新生成连接字符串。为什么传DataSet? 可以放在Session,Application中。还可以放在另一个类的静态成员中。 完全可以,你可以使用session来保存,比如在第一个叶面中,有一个DataSet对象ds,使用session保存session("DataSet")=ds然后你在第二个叶面中要用的时候,取出来就可以了dim ds1 as new dataset()ds1=session("DataSet") //用Session装载内含project2_t的DataSet public void DataFromSourceToMemory(string strDataSessionName) { DataSet oDS=PhysicalDataRead(); Session[strDataSessionName]=oDS; } //返回含有带主键ProjectID的Project2_t表的DataSet public DataSet PhysicalDataRead() { //在web.config的appSettings中预定义的连接字 SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings ["SQLConnectionString"]); SqlDataAdapter DA=new SqlDataAdapter("select * from Project2_t order by projectid desc",conn); DataSet oDS=new DataSet(); DA.Fill(oDS,"Project2_t"); return oDS; } //读取在Session里的DataSet public void getDataSet() { DataSet ds=(DataSet)Session["Project2DataSet"]; } 我有疑问,我用session传过数据,当时数据不多但我想知道如果数据量非常大,用户非常多的时候,用session传数据集会不会不太现实? 可以有cache ,把dataset放入緩存中. "如果数据量非常大"不要牵强去进行DataSet传递.这样资源将被过份占用.还是从原始数据源再读取数据较为妥当!会话状态较适用于小型数据交换 使用类。例如,在a.aspx.cs中定义 public class abc{...public DataSet get_dataset(){return dataset;//需传递的DataSet}...}b.aspx.cs中abc dd = new abc();DataSet = dd.get_dataset(); page1.aspx: public DataSet yourDataSet(or 搞成属性 更好);..........Page2.aspx :Page_load(){ Page1 pg1= (Page1)this.Context.Handler ; pg1.yourDataSet ......page1中的对象都可如此得到} 注* . page1转到page2需要用Transfer(......),用Redirect()page2不能得到page1的句柄。 如果asp.net提供一个类似设置的session的用于request间的处理传送数据(对象)的话不就简单了吗?java的jsp/servlet里面就有这样的东东:如 jsp : httpRequest.setAttribute("name","vaule");要是asp.net可以这样 象 this.session["name"]=value;处理request:this.request["name"]=value;就爽了 用JS怎么把XML里的数据给一个label或者textbox控件赋值? 我们是为了转换JSON格式而转换吗? 为什么在我机器上做的上传图片,发布到服务器(虚拟主机),只有在我的机器上可以生成缩略图和水印,换了机器就不能了(本地局域网也有这样的问题)? 請教vss2005的详细配置!! gridview数据导入到Excel 求exec 的解决方法 一个简单的gridview问题 问个关于网页放到国外服务器上出现乱码的问题!! 紧急求助,高分相送!!!!! 马上给分!datagrid列宽问题?? 招聘:.Net程序员 aspx页面无法显示的问题
用static DataSet
还可以放在另一个类的静态成员中。
然后你在第二个叶面中要用的时候,取出来就可以了
dim ds1 as new dataset()
ds1=session("DataSet")
public void DataFromSourceToMemory(string strDataSessionName)
{
DataSet oDS=PhysicalDataRead();
Session[strDataSessionName]=oDS;
}
//返回含有带主键ProjectID的Project2_t表的DataSet
public DataSet PhysicalDataRead()
{
//在web.config的appSettings中预定义的连接字
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings ["SQLConnectionString"]);
SqlDataAdapter DA=new SqlDataAdapter("select * from Project2_t order by projectid desc",conn);
DataSet oDS=new DataSet();
DA.Fill(oDS,"Project2_t"); return oDS;
}
//读取在Session里的DataSet
public void getDataSet()
{
DataSet ds=(DataSet)Session["Project2DataSet"];
}
例如,在a.aspx.cs中定义
public class abc
{
...
public DataSet get_dataset()
{
return dataset;//需传递的DataSet
}
...
}b.aspx.cs中
abc dd = new abc();
DataSet = dd.get_dataset();
public DataSet yourDataSet(or 搞成属性 更好);
..........Page2.aspx :Page_load()
{
Page1 pg1= (Page1)this.Context.Handler ;
pg1.yourDataSet
......page1中的对象都可如此得到
}
注* . page1转到page2需要用Transfer(......),用Redirect()page2不能得到page1的句柄。
如 jsp : httpRequest.setAttribute("name","vaule");要是asp.net可以这样 象 this.session["name"]=value;处理request:
this.request["name"]=value;就爽了