繁体   English   中英

连接到数据库时引发异常:连接属性尚未初始化

[英]exception thrown while connecting to database: connection property has not been initialized

我正在尝试基本的数据库插入,并且此代码在Visual Studio 2010中运行:

 protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Visual Studio 2010\\WebSites\\WebSite3\\App_Data\\name.mdf;Integrated Security=True;User Instance=True";

    SqlCommand cmd = new SqlCommand("insert into names values('" + TextBox1.Text + "')");
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

}

我哪里错了?

您创建了一个连接并将其打开,但是未将其与SqlCommand关联。 为此,您可以通过两种方式,无论是在的构造函数SqlCommand或通过Connection该财产SqlCommand

此外,应该使用参数化查询来防止SQL注入攻击。 我还建议将SqlConnection放在using块中,以确保将其关闭并正确处理。 将所有这些放在一起会得到以下信息:

protected void Button1_Click(object sender, EventArgs e)
{

    using (SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Visual Studio 2010\\WebSites\\WebSite3\\App_Data\\name.mdf;Integrated Security=True;User Instance=True"))
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand("insert into names values(@name)", conn);
        // Alternatively, you could do cmd.Connection = conn if you didn't pass
        // the connection object into the SqlCommand constructor
        cmd.Parameters.AddWithValue("@name", TextBox1.Text);

        cmd.ExecuteNonQuery();
    }
 }

您没有将连接分配给命令对象 尝试:

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Visual Studio 2010\\WebSites\\WebSite3\\App_Data\\name.mdf;Integrated Security=True;User Instance=True";

    SqlCommand cmd = new SqlCommand("insert into names values('" + TextBox1.Text + "')");
    cmd.Connection = conn; // <- this is the missing line
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM