连接到数据库时抛出的异常:连接属性尚未初始化

时间:2014-05-11 05:55:23

标签: c#

我正在尝试基本的数据库插入,这段代码就是我在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();

}

我哪里错了?

2 个答案:

答案 0 :(得分:1)

您创建了一个连接并将其打开,但您没有将其与SqlCommand相关联。您可以通过SqlCommand的构造函数或Connection的{​​{1}}属性以两种方式执行此操作。

此外,您应该使用参数化查询来防止SQL注入攻击。我还建议将SqlCommand放入使用块中,以确保它已关闭并妥善处理。把所有这些放在一起会给你这样的东西:

SqlConnection

答案 1 :(得分:0)

您没有分配connection to the command object。试试:

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();

}