当前位置:编程学习 > C#/ASP.NET >>

登陆按钮报错

登陆页面,按了登陆按钮以后会跳转到正确的页面,但是会报一个错
代码如下
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()试试 --------------------编程问答--------------------
引用 1 楼 ruiruixu 的回复:
换成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() --------------------编程问答--------------------
引用 4 楼 ruiruixu 的回复:
用Server.Transfer迁移到另一个页面保持着服务资源。 
而不是简单的通知浏览器服务端换了个页面并迁移请求。这 
意味着你不需要携带更多的Http请求,因此可以减轻服务端的 
压力而使你的应用运行得更快。 

但是,注意:因为"Transfer"过程只能在那些在同一服务端的 
站点上,你不能使用Server.Transfer使用户跳转到外部的站点。 
这点只有Respons……


非官方的解决办法是将要被跳转的画面的enableViewStateMac  
的属性设置为 True , 然后再设回 False. 这句怎么操作,是图形界面上操作一下还是用代码?用代码的话是在page_load里面吗?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,