using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Register : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        insertdata();
    }
    protected void btnExit_Click(object sender, EventArgs e)
    {
        Response.Redirect("Login.aspx");
    }
    //添加用户
    protected void insertdata()
    {
        string UserName = txtUserName.Text.Trim();
        string Password = txtPassword.Text.Trim();
        string Email = txtEmai.Text.Trim();
        
        int roleid =Convert.ToInt16( DdlUserRole.SelectedValue);
        SqlConnection cn = new SqlConnection(Class1.connectionString);
        try
        {
            cn.Open();
            string sl = "select * from [User] where UserName=@UserName";
            SqlCommand checkcmd = new SqlCommand();
            checkcmd.CommandText = sl;
            checkcmd.Parameters.AddWithValue("@UserName", UserName);
            checkcmd.Connection = cn;
            SqlDataReader reader = checkcmd.ExecuteReader();
            bool e = reader.Read();
            if (e == true)
            {
                Response.Write("<script>alert('用户名已经存在!')</script>)");
                checkcmd.Dispose();
                cn.Dispose();
                txtUserName.Text = "";
                return;
            }
            reader.Dispose();            string sr = "insert into User (UserName,Password,Email) values(@UserName,@Password,@Email)";            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = sr;
            cmd.Parameters.AddWithValue("@UserName", UserName);
            cmd.Parameters.AddWithValue("@Password", Password);
            cmd.Parameters.AddWithValue("@Email", Email);
            cmd.Connection = cn;
            cmd.ExecuteNonQuery();
            cn.Close();
            cmd.Dispose();
            txtUserName.Text = "";
            txtEmai.Text = "";
            Response.Redirect("Main.aspx");
            Response.Write("<script>alert('恭喜!注册成功')</script>");
        }
        catch (SqlException ex)
        {
            Response.Write("<script>alert('" + ex.Message.ToString() + "')</script>");
        }
        finally
        {
            cn.Close();
        }    }
   
}
为什么不弹出错误信息呢?
Exception 用这个类也不行!

解决方案 »

  1.   

    调试进吗?干脆直接写成throw ex
      

  2.   

     Response.Write("<script>alert('用户名已经存在!')</script>)");   老大 多了半边括号
      

  3.   

    Exception 用这个类也不行!   那是你没有异常
      

  4.   

    ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language='javascript'>alert('');</script>");
    单步跟踪
    using(SqlConnection cn = new SqlConnection(Class1.connectionString))
    {}
    catch (SqlException ex)
      {
        }
    catch (Exception ex)
      {
       }
      

  5.   

    我都改过来了,怎么还不能弹出来呢?
     Response.Write("<script>alert(ex.Messge);
    这样就能够出来
      

  6.   

    Response.Write("<script>alert('用户名已经存在!')</script>)");输出但不终止程序继续运行下去。
    如果你希望弹出,需要
    Response.End()一下
      

  7.   

    你想这样写的话   必须动态注册javascript
      

  8.   

    Response.Redirect("Main.aspx"); //这里直接就跳转了,下面的语句不会执行。
    Response.Write("<script>alert('恭喜!注册成功')</script>");Respoonse.End(); //在执行End()时,很容易造成应该释放的资源没有释放。一般来说,简单的的话,应该建立一个变量。比如:errorMessage
    把错误信息丢到变量里,然后在适当的地方检查变量是否为空,如果不为空,释放资源后,输出变量输到页面。