我正在创建一个在线应用程序,我正在尝试通过asp.net winforms更新数据。我在表textbox
中有一个名为tbCompanyName
的{{1}}和一个名为companyName
的数据库中的列。
我正在完美地从列中选择以前的数据,但是当我尝试更新数据时,它不会更新数据,尽管没有显示任何错误。我曾在C#桌面应用程序中工作,但我在ASP.NET中完全是新手。
我认为可能存在任何tblCompanySetup
问题,但我不知道如何解决。我发布了我用于更新SQL Server表中数据的代码。请帮帮我。
AUTOPOSTBACK
注意:我在文本框中有以前的值,我用它来更新新值。当我将该文本框放空并键入新值时,它工作正常。但是当我在文本框中选择以前的值然后输入新值并单击提交时,它实际上是保存以前的值。我也按下了提交按钮,它会刷新表单并再次输入上一个值
答案 0 :(得分:0)
您似乎在页面加载时从数据库中检索方法。类似的东西:
protected void Page_Load(object sender, EventArgs e){
RetrieveMyData(); // it is a method where you retrieve a data
}
将其更改为:
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack)
RetrieveMyData(); // it is a method where you retrieve a data
}
您的项目就像:
1)Page_Load - > RetrieveMyData()
2)您的文本框具有数据库中的某些值
3)您将该值更改为新值
4)点击UPDATE按钮
5)由于你不考虑PostBack,它再次调用RetrieveMyData并且你的文本框具有旧值
6)您的Update方法会执行,但不会发生任何更改
如果您按照我的说明使用PostBack:
1)Page_Load - > RetrieveMyData
2)您的文本框具有数据库中的某些值
3)你改变了那个值
4)单击“更新”按钮
5)当您使用!IsPostBack 并且按钮发生回发时,您的RetrieveMyData方法将无法在此处运行
6)您的更新方法将使用新值更新旧值
希望有所帮助