我是asp.net的新手并且陷入了一个非常愚蠢的问题.但我无法弄明白.我有一个表格,由page_load上的数据填充,用户更新表单的输入文本,然后单击“更新”按钮.它会更新,但会使用旧数据进行更新.
为什么用旧数据更新它?
这是aspx表单
<form id="form1" runat="server">
<table>
<tr>
<td>ID</td>
<td><asp:Label ID="lbl_id" runat="server" Text=""></asp:Label></td>
</tr>
<tr>
<td>FirstName</td>
<td><asp:TextBox ID="txt_firstname" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>LastName</td>
<td><asp:TextBox ID="txt_lastname" runat="server"></asp:TextBox></td>
</tr>
</table>
这是背后的代码
protected void Guncelle_Click(object sender, EventArgs e)
{
DbCommand dbCommand;
dbCommand = db.GetStoredProcCommand("MedBul_Update_Registration_Request");
db.AddInParameter(dbCommand, "id", DbType.Int16, request_id);
db.AddInParameter(dbCommand, "FirstName", DbType.String, txt_firstname.Text.ToString().Trim());
db.AddInParameter(dbCommand, "LastName", DbType.String, txt_lastname.Text.ToString().Trim());
db.ExecuteNonQuery(dbCommand);
}
这是存储过程
Create PROCEDURE [dbo].[MedBul_Update_Registration_Request]
(@id int,@FirstName varchar(50),@LastName varchar(50))
AS
BEGIN
update NewProfessionalRequest set FirstName= @FirstName, LastName =@LastName
where id = @id
END
GO
最佳答案 你提到你用页面加载的数据填充页面控件.
将您的代码包装在Page_Load上,如下所示:
if(!isPostBack)
{
// populate form with data from DB here
}
因为当您点击UpdateBtn时,Page_Load事件被触发,并且您的更改将使用来自DB的“旧”数据重新编写.