登陆按钮报错
登陆页面,按了登陆按钮以后会跳转到正确的页面,但是会报一个错代码如下
try
{
sqlconnect sc = new sqlconnect();
string sqlcmd = "select count(*) from usertable where branch='" + branch + "' and id='" + userid + "' and pwd='" + pwd + "'";
string havenum = sc.Scalar(sqlcmd);
if (havenum.Equals("1"))
{
sqlcmd = "select power from usertable where id='" + userid + "'";
Session["userid"] = userid;
Session["power"] = sc.Scalar(sqlcmd);
Session["branch"] = branch;
sqlcmd = "insert into loginrecord values('" + userid + "','" + DateTime.Now.ToString() + "')";
sc.Executenoquery(sqlcmd);
Server.Transfer("index.aspx");----执行到这一步报错,但是页面正常跳转
}
else
{
Response.Write("<script>alert('身份验证失败,请确认机构号,ID和密码');</script>");
return;
}
}
catch (Exception ee)
{
Response.Write("<script>alert('数据库查询失败,请联系管理员" + ee.ToString().Replace(Environment.NewLine, "").Replace("'", "\"") + "');</script>");
return;
}
报错信息如下:
System.Threading.ThreadAboutException:正在终止线程。
求解 --------------------编程问答-------------------- 换成Response.Redirect()试试 --------------------编程问答--------------------
用这个就好了,为什么不能用Server.Transfer --------------------编程问答-------------------- 用Response.Redirect ("nextpage.aspx", false);
--------------------编程问答-------------------- 用Server.Transfer迁移到另一个页面保持着服务资源。
而不是简单的通知浏览器服务端换了个页面并迁移请求。这
意味着你不需要携带更多的Http请求,因此可以减轻服务端的
压力而使你的应用运行得更快。
但是,注意:因为"Transfer"过程只能在那些在同一服务端的
站点上,你不能使用Server.Transfer使用户跳转到外部的站点。
这点只有Response.Redirect能做到。
第二,Server.Transfer维持着浏览器原始的URL,这对于流线
型的数据入口技术,虽然它有可能导致调试的时候的数据混乱
还有,Server.Transfer方法还有二个参数的重载方法——
"preserveForm"如果你将其设置为True(默认情况是False),
使用一个状态比如:Server.Transfer("WebForm2.aspx", True),
现存的请求字符串和所有的Form里的变量将被保持并提交到你的
目标页。
但是必须注意的是,这里有一个奇怪的Bug(微软为什么有这样
的Bug)。当你使用两个参数的重载方法试图迁移form和请求字符
串的时候会有可能产生错误。
非官方的解决办法是将要被跳转的画面的enableViewStateMac
的属性设置为 True , 然后再设回 False.
--------------------编程问答-------------------- Response.Redirect() --------------------编程问答--------------------
非官方的解决办法是将要被跳转的画面的enableViewStateMac
的属性设置为 True , 然后再设回 False. 这句怎么操作,是图形界面上操作一下还是用代码?用代码的话是在page_load里面吗?
补充:.NET技术 , ASP.NET