更新的值未通过

时间:2014-09-24 14:10:07

标签: c#

这可能很简单,但我不能指责它。我有一个.aspx页面,其中包含用户创建的条目列表。有一个与每个记录相关联的链接,当按下该链接时,该记录的值被加载到另一个页面(详细信息页面),该页面允许用户编辑该记录的任何字段。这一切都很好,很简单。

但是当按下详细信息提交按钮时,将重新提交相同的先前值,而不是当前更改的值。所以我得到两个具有不同[Id]值的相同记录。我在调试器中查看了所有内容,但无法弄清楚为什么没有传递新值。我在C#页面中知道它,因为当我执行我的存储过程并手动输入值时,一切正常。

我在这里缺少什么?

    protected void SubmitDetails_Click(object sender, EventArgs e)
    {
        //Connection to the sql db and the stored procedure. 
        SqlConnection sqlConn = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        SqlCommand command = new SqlCommand("dbo.InsertDetailsRecords", sqlConn);

        sqlConn.Open();

        command.CommandType = CommandType.StoredProcedure;
        //Parameters being passed to the stored procedure to go into the table. 
        command.Parameters.Add(new SqlParameter("@Date", (Datetxt.Text)));
        command.Parameters.Add(new SqlParameter("@Title", (TitleBox.Text)));
        command.Parameters.Add(new SqlParameter("@FirstName", (FirstNameBox.Text)));
        command.Parameters.Add(new SqlParameter("@LastName", (LastNameBox.Text)));
        command.Parameters.Add(new SqlParameter("@Comments", (CommentsBox.Text)));
        command.Parameters.Add(new SqlParameter("@Categories", DropDownListCategory.SelectedValue));
        command.Parameters.Add(new SqlParameter("@Centers", DropDownListCenters.SelectedValue));
        command.Parameters.Add(new SqlParameter("@Status", DownListStatus.SelectedValue));

        command.ExecuteNonQuery();
        sqlConn.Close();

        //Redirecting to the list page once the submit button is pressed. 
        Response.Redirect("List.aspx");
    }

1 个答案:

答案 0 :(得分:0)

问题出在您的存储过程中。 InsertDetailsRecords正在插入记录而不是更新它们。您需要传递一个标志/ ID,表示您正在更新记录而不是插入记录。记录。