该字符串未被识别为有效的布尔值。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 该字符串未被识别为有效的布尔值。源错误: 
行 52:      cmd.Parameters["@UID"].Direction = ParameterDirection.Output;
行 53:      conn.Open();
行 54:      cmd.ExecuteNonQuery();
行 55:       conn.Close();
行 56:      int UserId = Convert.ToInt32( cmd.Parameters["@UID"].Value);代码:
  SqlConnection conn=new SqlConnection (System.Configuration.ConfigurationManager.ConnectionStrings["constring"].ToString());
     SqlCommand cmd = new SqlCommand("InsertUser", conn);
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.Add("@UserCHName", SqlDbType.VarChar).Value = UserName.Text.Trim();
     cmd.Parameters.Add("@UserPwd", SqlDbType.VarChar).Value = TextBox1.Text.Trim();
     cmd.Parameters.Add("@@UserLevel", SqlDbType.Bit).Value = RadioButtonList1.SelectedValue;
     cmd.Parameters.Add("@UID", SqlDbType.Int);
     cmd.Parameters["@UID"].Direction = ParameterDirection.Output;
     conn.Open();
     cmd.ExecuteNonQuery();
      conn.Close();
     int UserId = Convert.ToInt32( cmd.Parameters["@UID"].Value);
     if (UserId <= 0)
     {
         Label1.Text = "账户存在";
     }
     else
     {
         Response.Write("<script>alter('添加用户名成功')</script>");
     }帮忙看哈 
 

解决方案 »

  1.   

    Convert.ToInt32( cmd.Parameters["@UID"].Value);先检查下 cmd.Parameters["@UID"].Value 是不是DBNull
      

  2.   

    楼上已经说了
    另外用一个静态类把这个封装一下
    System.Configuration.ConfigurationManager.ConnectionStrings["constring"].ToString()静态属性也行 const的
      

  3.   

    同意1、2楼。
    另外,重构一下吧。cmd.Parameters.Add("@UserPwd", SqlDbType.VarChar).Value = TextBox1.Text.Trim();命名不规范(根本就没改名),
    不好做检查,比如验证密码不能为空,怎么处理?没有做异常处理。其他还有很多,就先不说了。