|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!数据|页面resquest.querystring--用于<255的字符串
session--本使用程序内用。
application--一切启动使用程序的公用。
cookies--把东东写客户端
cache--部分的使用程序不想为了重复读数据库而在必定工夫内缓存数据。
在两个ASP.NET页面之间传送值
弁言
ASP.NET供应了出色的事务驱动编程模子,闪开发者简化了使用程序的整体计划,可是这个也形成了它固有的一些成绩,比方,利用传统的ASP里,我们能够经由过程利用POST办法很简单地完成页面间传送值,一样的事变,在利用事务驱动编程模子的ASP.NET就不是那末简单了,固然了,我们仍旧有一些办法能够完成一样的功效。本文将试着利用分歧的大概的办法来办理这个成绩,但能够预感是,本文将包括利用querystring,session变量和server.Transfer办法来完成页面间的值传送。
利用QueryString
利用QuerySting在页面间传送值已是一种很老的机制了,这类办法的次要长处是完成起来十分复杂,但是它的弱点是传送的值是会显现在扫瞄器的地点栏上的(不平安),同时又不克不及传送工具,可是在传送的值少而平安性请求不高的情形下,这个办法仍是一个不错的计划。利用这类办法的步骤以下:
1,利用控件创立web表单(form)
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里创立一个保留URL的字符变量
4,在保留的URL里增加QueryString参数
5,利用Response.Redirect重定向到下面保留的URL
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
stringurl;
url="anotherwebform.aspx?name="+TextBox1.Text+"&email="+TextBox2.Text;
Response.Redirect(url);
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
利用Session变量
利用Session变量是能够在页面间传送值的的另外一种体例,在本例中我们把控件中的值存在Session变量中,然后在另外一个页面中利用它,以分歧页面间完成值传送的目标。可是,必要注重的是在Session变量存储过量的数据会损耗对照多的服务器资本,在利用session时应当稳重,固然了,我们也应当利用一些清算举措往复除一些不必要的session来下降资本的无谓损耗。利用Session变量传送值的一样平常步骤以下:
1,在页面里增加需要的控件
2,创立能够前往表单的按钮和链接按钮
3,在按钮或链接按钮的单击事务里,把控件的值增加到session变量里
4,利用Response.Redirect办法重定向到另外一个页面
5,在另外一个页面提取session的值,在断定不必要利用该session时,要显式扫除它
上面的代码片段演示了怎样完成这个办法:
源页面代码:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
//textbox1andtextbox2arewebform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}
利用Server.Transfer
这个办法比拟下面先容的办法略微庞大一点,但在页面间值传送中倒是出格有效的,利用该办法你能够在另外一个页面以工具属性的体例来存取显现的值,固然了,利用这类办法,你必要分外写一些代码以创立一些属性以即可以在另外一个页面会见它,可是,这个体例带来的优点也是不言而喻的。整体来讲,利用这类办法是简便的同时又是面向工具的。利用这类办法的全部历程以下:
1,在页面里增加需要的控件
2,创立前往值的Get属性历程
3,创立能够前往表单的按钮和链接按钮
4,在按钮单击事务处置程序中挪用Server.Transfer办法转移到指定的页面
5,在第二个页面中,我们就能够利用Context.Handler属性来取得前一个页面实例工具的援用,经由过程它,就能够利用存取前一个页面的控件的值了
以下代码综合完成上述步骤历程的代码:
源页面代码:
把以下的代码增加到页面中
publicstringName
{
get
{
returnTextBox1.Text;
}
}
publicstringEMail
{
get
{
returnTextBox2.Text;
}
}
然后挪用Server.Transfer办法
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Server.Transfer("anotherwebform.aspx");
}
方针页面代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
//createinstanceofsourcewebform
WebForm1wf1;
//getreferencetocurrenthandlerinstance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|