连接没有关闭。连接的当前状态是开放的。 //新

时间:2017-06-15 16:29:59

标签: asp.net .net c#-4.0 visual-studio-2013

enter image description here

public partial class SignUp:System.Web.UI.Page     {         SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings [" dbcon"]。ToString());

    public int chkuser()
    {
        if (con.State.ToString() == "open")
            con.Close();
        SqlCommand cmd = new SqlCommand("select count(*) from Task2_SignUp where UserName= '"+txtUName.Text+"'",con);
        con.Open();
        int flag = Convert.ToInt32(cmd.ExecuteScalar().ToString());
        return flag;
    }

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnSignUp_Click(object sender, EventArgs e)
    {
        if(chkuser()==0)
        {
            if (con.State.ToString() == "open")
                con.Close();
            SqlCommand cmd = new SqlCommand("insert into Task2_SignUp (UserName,Password,Name) values (@UserName, @Password, @Name)", con);
            cmd.Parameters.AddWithValue("@Username", txtUName.Text);
            cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
            cmd.Parameters.AddWithValue("@Name", txtName.Text);
            con.Open(); //ERROR SHOWING IN THIS LINE
            cmd.ExecuteNonQuery();
            con.Close();

            lblSignUp.Text = "Registration Successfull";
            _blank();
        }
        else if(chkuser()>0)
        {
            lblSignUp.Text = "Username not available";
        }
    }
    public void _blank()
    {
        txtName.Text = "";
        txtUName.Text = "";
        txtPassword.Text = "";
    }

    protected void btnNext_Click(object sender, EventArgs e)
    {
        Response.Redirect("Login.aspx");
    }
}

}

问题:这是我不知道为什么的错误..并且令人惊讶的是,这个相同的代码工作了两周但现在还没有工作..请尽可能帮助我。

2 个答案:

答案 0 :(得分:0)

的问题:

  1. 功能chkUser有问题。如果txtUName.Text包含单引号,则会引发异常。最好重新编码以使用参数。

  2. 此外,发生异常的是什么?发布堆栈跟踪。

  3. 当您可以使用con.State.ToString() == "open"时,无需connection.State == ConnectionState.Open

  4. 我们无法看到您的数据库自两周以来是否发生了变化,因此您可能会从那里开始。

答案 1 :(得分:0)

问题已经解决。这是一个小错误。而不是(con.State.ToString()==" Open")我写了(con.State.ToString()==" open")...意味着代替资本& #39; O'我写了小' o' ..因此出现了这个问题..休息我的代码非常好。作为一名实习开发人员,我学到了这一点。如果还有像我这样的dot net的其他实习开发人员,那么你一定不要犹豫。只记得语法。