但是我把if和else以后,也是的,就算try里面没有错误,都能通过也是这样的,只要在try里面有this.response.redirect(ur)就不可以的

解决方案 »

  1.   

    把this.Response.Redirect(url)改成Response.Redirect(url)应该就行了
      

  2.   

    catch
    ->catch( Exception ex )
    {}
    看看是什么异常
      

  3.   

    try
    {
         ......//语句
         if(条件) //条件保证无误,用if(1==1)试试
            {   语句}
         else
            Response.Redirect(url);
    }
     catch( Exception ex ){
         this.Response.Redirect(error_url);}
      

  4.   

    把你的完全代码帖出来》
    还有把Execption 的Message
    打出来,是什么错误
      

  5.   

    private void WorkLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
        if(Page.IsValid)
       {
    try
    {
       cookie=this.Request.Cookies["User"];
       if(this.Page.IsValid || CStr.CheckUserID(cookie.Values["ID"]))//用户登陆以后的ID
         {
    if(DateTime.Compare(DateTime.Parse(this.startdate.Text),DateTime.Parse(this.enddate.Text))==1)//判断输入的时间间隔是否正确
    {
    this.RegisterClientScriptBlock("error","<script language='javascript'>alert('您输入的时间间隔不对');</script>");
    }
        else
    {
    SqlConnection cn=new connSql().conn();
    SqlCommand cm=new SqlCommand();
    try
    {
    cn.Open();
    cm.Connection=cn;
    if(this.Request.QueryString.HasKeys())
    {
    if(this.Request.QueryString["id"].ToString()=="add")
    cm.CommandText="insert into Work(UserID,StartTime,EndTime,CompanyName,CompanyKind,WorkSort,Trust,Achievement,Pay,Reason,ShowWork,LoginIP) "+
    "values('"+cookie.Values["ID"]+"','"+this.startdate.Text+"','"+this.enddate.Text+"','"+this.CompanyName.Text+"','"+this.CompanyKind.SelectedItem.Text+"','"+this.WorkSort.SelectedItem.Text+"','"+this.Trust.Text+"','"+this.Achievement.Text+"','"+this.Pay.Text+"','"+this.Reason.Text+"','"+this.ShowWork.SelectedItem.Value+"','"+this.Request.UserHostAddress+"')";
    else
    cm.CommandText="update Work set StartTime='"+this.startdate.Text+"',EndTime='"+this.enddate.Text+"',CompanyName='"+this.CompanyName.Text+"',CompanyKind='"+this.CompanyKind.SelectedItem.Text+"',WorkSort='"+this.WorkSort.SelectedItem.Text+"',Trust='"+this.Trust.Text+"',Achievement='"+this.Achievement.Text+"',Pay='"+this.Pay.Text+"',Reason='"+this.Reason.Text+"',ShowWork='"+this.ShowWork.SelectedValue+"',LoginIP='"+this.Request.UserHostAddress+"',LoginDate='"+DateTime.Now+"' where WorkID='"+this.Request.QueryString["id"]+"'";
    }
    else
    {
    cm.CommandText="insert into Work(UserID,StartTime,EndTime,CompanyName,CompanyKind,WorkSort,Trust,Achievement,Pay,Reason,ShowWork,LoginIP) "+
    "values('"+cookie.Values["ID"]+"','"+this.startdate.Text+"','"+this.enddate.Text+"','"+this.CompanyName.Text+"','"+this.CompanyKind.SelectedItem.Text+"','"+this.WorkSort.SelectedItem.Text+"','"+this.Trust.Text+"','"+this.Achievement.Text+"','"+this.Pay.Text+"','"+this.Reason.Text+"','"+this.ShowWork.SelectedItem.Value+"','"+this.Request.UserHostAddress+"')";
    }
    cm.ExecuteNonQuery();
    }
    catch
    {
    string url="error.aspx?error=insert_error";
    this.Response.Redirect(url);
    }
    finally
    {
    cn.Close();
    }
    Response.Redirect("user_Work.aspx");//--》》就在这里出问题,try里面的语句执行完以后这个就执行不过去了,而是直接转到catch里面的页面去了
    }
    }
    else
    {
    string url="error.aspx?error=url_error";
    this.Response.Redirect(url);
    }
    }
    catch
    {
    string url="error.aspx?error=url_error";
    this.Response.Redirect(url);
    }
    }
    }
      

  6.   

    可是我只要将两个catch里面的语句换成这句就可以通过了
    catch(Exception ee)
    {
    //string url="error.aspx?error=insert_error";
    //this.Response.Redirect(url);
    this.RegisterClientScriptBlock("a","<script language='javascript'>alert('"+ee.Message+"');</script>");
    }
      

  7.   

    哪位高手可以告诉小弟,try  catch语句的运行机制是什么?为什么不可以在try里面进行页面转换