вставка записи в базу данных sqlserver - PullRequest
0 голосов
/ 26 апреля 2011

У меня проблемы со вставкой данных из моей регистрационной веб-формы в sqlserver-2008. Я получаю сообщение об ошибке в VS: Соединение не было закрыто. Текущее состояние соединения открыто.

Вот код, который у меня есть:

protected void buttonRegister(object sender, EventArgs e)
{
    SqlConnection objCon = new SqlConnection(strCon);

    try
    {
        objCon.ConnectionString = strCon;
        objCon.Open();
    }
    catch (Exception ex)
    {
        this.lblConnect.Text = "Unable to connect to database.";
    }

    if (objCon.State == System.Data.ConnectionState.Open)
    {
        Session["users"] = this.txtUsername.Text;
        Session["pwd"] = this.txtPassword.Text;
        lblConnect.Text = "Connected";

        string sql = @"INSERT INTO user (firstname, middlename, lastname, username, email, password) VALUES ('" + txtFirstname.Text
            + "' , '" + txtMiddlename.Text + "', '" + txtLastname.Text + "', '" + txtUsername.Text + "', '" + txtEmailAddr.Text
            + "', '" + txtPassword.Text + "')";

        objCon.Open();
        SqlCommand cmd = new SqlCommand(sql, objCon);
        cmd.ExecuteNonQuery();
        SqlDataReader rd = cmd.ExecuteReader();

        objCon.Close();
        objCon.Dispose();
    }
    else
    {
        lblConnect.Text = "Unable to connect to database.";
                    objCon.Close();
        objCon.Dispose();

    }
    objCon.Close();
    objCon.Dispose();

}

Есть идеи, почему он не вставляется в SQL Server? Пожалуйста помоги! Любая помощь очень ценится.

1 Ответ

0 голосов
/ 26 апреля 2011

Мне кажется, вы открываете objCon во второй раз. Ваш if удостоверится, что он открыт, затем вы попытаетесь открыть его снова после назначения строки sql.

У вас есть это условие:

if (objCon.State == System.Data.ConnectionState.Open)

тогда, в этом состоянии вы говорите objCon.Open();

Устранить эту проблему objCon.Open();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...