Sql server 2008 如何将记录插入SQLServer2008数据库?

Sql server 2008 如何将记录插入SQLServer2008数据库?,sql-server-2008,sql-server-2008-r2,Sql Server 2008,Sql Server 2008 R2,我无法将注册Web表单中的数据插入sqlserver-2008。我在VS中遇到错误:连接未关闭。连接的当前状态为“打开” 以下是我的代码: protected void buttonRegister(object sender, EventArgs e) { SqlConnection objCon = new SqlConnection(strCon); try { objCon.ConnectionString = strCon; o

我无法将注册Web表单中的数据插入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吗?请帮忙!非常感谢您的帮助。

在我看来,您是在第二次打开
objCon
。如果
确保它已打开,则在分配sql字符串后再次尝试打开它

您有以下情况:

if (objCon.State == System.Data.ConnectionState.Open)
然后,在该条件下,您可以说
objCon.Open()


消除有问题的
objCon.Open()

嗨!如果你想在文章中包含源代码,你应该把它缩进四个空格,这样它的格式就会正确。或者,您可以选择所有代码,然后单击带有大括号的按钮:),考虑使用表适配器。您的代码按原样接受SQL注入。非常危险@弗拉维奥茨:我觉得这像是意大利面。我想他只是想了解DB连接是如何工作的。你是绝对正确的,关于:SQL注入,但他现在最好保持简单,IMHO。谢谢。我把那个复制品处理掉了,插页看起来很有效。我的表中有一个主键id,我的sql语句是字符串sql=@“插入flightuser(id、firstname、middlename、lastname、用户名、电子邮件、密码)值(“+”2“+”、“+txtFirstname.Text+”、“+TXTDirstName.Text+”、“+txtLastname.Text+”、“+txtLastname.Text+”、“+TXTSterName.Text+”、“”+txtmailaddr.Text+“,”,“+txtmailaddr.Text+”)”;我该如何做才能不必指定id?我不知道你的评论是什么。如果您的PK是一个自动编号,而您可能不应该显式地为其设置值。如何在每次插入新记录时将id设置为自动递增?