1.Server.Transfer跳转页面抛出异常:正在终止线程

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

今天在向数据库插入数据,之后使用Server.Transfer跳回本页面时,抛出异常:正在终止线程

ry

{if(0== String.Compare(PassWord.Text.Trim(), ConfirmPassword.Text.Trim()))//两次输入密码相同{

MembershipUser mu= Membership.CreateUser(UserName.Text, Password.Text);//添加注册用户Roles.AddUserToRole(UserName.Text,"worker");//添加角色String strConn ="server=.;database=ComInfo;integrated security=true;";//连接字符串SqlConnection conn =newSqlConnection(strConn);//创建数据库链接conn.Open();//打开连接String PassUserid = Request.QueryString["C_Id"];

String userid= mu.PRoviderUserKey.ToString();//获取注册IDSqlCommand cmd =newSqlCommand("insert into Emp(E_Name,E_Sex,E_Position,E_Organisation,E_Address,E_Phone,C_Id,User_Id) values("+"'"+ UserName.Text.Trim() +"',"+"'"+ edt_sex.Text.Trim() +"',"+"'"+ edt_pos.Text.Trim() +"',"+"'"+ edt_dep.Text.Trim() +"',"+"'"+ edt_address.Text.Trim() +"',"+"'"+ edt_phone.Text.Trim() +"',"+"'"+ PassUserid +"',"+//公司ID"'"+ userid +"'"+//用户注册ID")", conn);//sql语句,向Emp表添加数据cmd.ExecuteNonQuery();

conn.Close();

Server.Transfer("~/User/Imformation.aspx");

}

}elseResponse.Write("<script>window.alert('两次输入的密码不同!');</script>");

}catch(Exception ex)

{

Response.Write("<script>window.confirm('"+ ex.Message.ToString() +"');</script>");

}

原因:Server.Transfer的执行,将会内部调用Response.End,将此执行切换到应用程序的事件管线中的application_EndRequest 事件,同时抛出ThreadAbortException 异常,异常信息为“正在中止线程”。

解决办法:将Server.Transfer语句放到finally中,不再抛出异常

finally{

Server.Transfer("~/User/Imformation.aspx");

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航