SQL语句在C#中失败

时间:2014-11-10 01:43:39

标签: c# sql sql-server

我正在尝试执行以下代码:

SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB  rest of my connstring.... ");
SqlCommand update = new SqlCommand("Update tblImages SET Name=@name, Descript=@descript WHERE Id=@id", connection);
update.Parameters.Add("name", TextBox3.Text);
update.Parameters.Add("descript",TextBox4.Text);
update.Parameters.Add("id",id);
update.ExecuteNonQuery();

执行ExecuteNonQuery()时出错。

2 个答案:

答案 0 :(得分:0)

您需要在connection.Open()之前update.ExecuteNonQuery()。您还需要使用using statement确保在connection执行后update.ExecuteNonQuery()关闭。 update.Parameters.Add(...)方法中的参数名称也有误,您忘记添加@

using (SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB  rest of my connstring.... "))
{
    using (SqlCommand update = new SqlCommand("Update tblImages SET Name = @name, Descript = @descript WHERE Id = @id", connection))
    {
        update.Parameters.Add(new SqlParameter("@name", TextBox3.Text));
        update.Parameters.Add(new SqlParameter("@descript", TextBox4.Text));
        update.Parameters.Add(new SqlParameter("@id", id));

        connection.Open();
        update.ExecuteNonQuery();
    }
}

答案 1 :(得分:0)

我认为这里的问题是你错过了' @'添加参数语句中的符号。您还使用了添加而不是AddWithValue

尝试将其更改为:

SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB  rest of my connstring.... ");
connection.Open();
SqlCommand update = new SqlCommand("Update tblImages SET Name=@name, Descript=@descript WHERE Id=@id", connection);
update.Parameters.AddWithValue("@name", TextBox3.Text);
update.Parameters.ADdWithValue("@descript", TextBox4.Text);
update.Parameters.AddWithValue("@id", id);
update.ExecuteNonQuery();

注意我还更改了代码以打开您已创建的连接。