这可能很简单,但我不能指责它。我有一个.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");
}
答案 0 :(得分:0)
问题出在您的存储过程中。 InsertDetailsRecords正在插入记录而不是更新它们。您需要传递一个标志/ ID,表示您正在更新记录而不是插入记录。记录。