附近的语法不正确(SQL 更新命令)

Incorrect syntax near ( SQL Update command)

似乎是一个简单的语法错误,但需要帮助。

protected void editback_Click(object sender, EventArgs e)
{
    String EditStoryID = DropDownList3.SelectedItem.Value;
    String EditProjectID = DropDownList1.SelectedItem.Value;
    String EditRequirement = TextBoxBacklog.Text;
    String EditLock = "0";

    String connectionString = WebConfigurationManager.ConnectionStrings["ScrumString"].ConnectionString;
    SqlConnection myConnection = new SqlConnection(connectionString);


    myConnection.Open();
    String query = "UPDATE product_backlog SET (project_id=@project_id,user_story=@user_story,is_locked=@is_locked) WHERE project_backlog.id = (@id)";

    SqlCommand commandEdit = new SqlCommand(query, myConnection);
    commandEdit.Parameters.AddWithValue("@project_id", EditProjectID);
    commandEdit.Parameters.AddWithValue("@id", EditStoryID);
    commandEdit.Parameters.AddWithValue("@user_story", EditRequirement);
    commandEdit.Parameters.AddWithValue("@is_locked", EditLock);

    commandEdit.ExecuteNonQuery();

    Page.Response.Redirect(Page.Request.Url.ToString(), true);

    Labelsuccess.Text = "User story has been updated";
    TextBoxBacklog.Text = "";
}

set 子句不应该被括号包围:

UPDATE product_backlog
    SET project_id = @project_id,
        user_story = @user_story,
        is_locked = @is_locked
   WHERE project_backlog.id = (@id);

您必须删除 SET 语句后的括号。 它们在 WHERE 语句之后被排除在外,但 SET 必须没有,即使您要更新的字段超过 1 个

UPDATE your_table SET key=@value WHERE id = (@id)