ASP.net 无法更新 SQL 服务器中的列
ASP.net unable to UPDATE column in SQL Server
我正在创建一个在线应用程序,我试图通过 asp.net winforms 更新数据。我的数据库中有一个名为 tbCompanyName
的 textbox
和一个名为 companyName
的列,位于 table tblCompanySetup
中。
我正在从列中完美地选择以前的数据,但是当我尝试更新数据时,它没有更新数据,尽管没有显示任何错误。我曾在 C# 桌面应用程序中工作,但我在 ASP.NET 方面完全是新手。
我认为可能存在任何 AUTOPOSTBACK
问题,但我不知道如何解决。我正在发布我用于更新 SQL 服务器 table 中的数据的代码。请帮助我。
using (var con = new SqlConnection(ConStr))
{
string query = @"UPDATE tblCompanySetup SET companyName = @companyName";
using (var cmd = new SqlCommand(query, con))
{
con.Open();
cmd.Parameters.AddWithValue("@companyName", SqlDbType.NVarChar).Value = tbCompanyName.Text;
cmd.ExecuteNonQuery();
}
}
注意:我在文本框中有以前的值,我正在使用它来更新新值。当我将该文本框清空并键入新值时,它工作正常。但是当我在文本框中 select 以前的值然后输入新值并单击提交时,我猜它实际上是在保存以前的值。当我按下提交按钮时,它会刷新表单并再次输入以前的值
您似乎有在页面加载时从数据库中检索方法。类似于:
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) 您点击更新按钮
5) 由于您不考虑 PostBack,它再次调用 RetrieveMyData 并且您的文本框具有旧值
6) 您的 Update 方法已执行,但未发生任何更改
如果您将像我展示的那样使用 PostBack:
1) Page_Load -> 检索我的数据
2) 您的文本框有一些来自数据库的值
3) 您更改该值
4) 您点击更新按钮
5) 当您使用 !IsPostBack 并且按钮发生回发时,您的 RetrieveMyData 方法将无法在此处工作
6) 您的更新方法会将旧值更新为新值
希望对您有所帮助
我正在创建一个在线应用程序,我试图通过 asp.net winforms 更新数据。我的数据库中有一个名为 tbCompanyName
的 textbox
和一个名为 companyName
的列,位于 table tblCompanySetup
中。
我正在从列中完美地选择以前的数据,但是当我尝试更新数据时,它没有更新数据,尽管没有显示任何错误。我曾在 C# 桌面应用程序中工作,但我在 ASP.NET 方面完全是新手。
我认为可能存在任何 AUTOPOSTBACK
问题,但我不知道如何解决。我正在发布我用于更新 SQL 服务器 table 中的数据的代码。请帮助我。
using (var con = new SqlConnection(ConStr))
{
string query = @"UPDATE tblCompanySetup SET companyName = @companyName";
using (var cmd = new SqlCommand(query, con))
{
con.Open();
cmd.Parameters.AddWithValue("@companyName", SqlDbType.NVarChar).Value = tbCompanyName.Text;
cmd.ExecuteNonQuery();
}
}
注意:我在文本框中有以前的值,我正在使用它来更新新值。当我将该文本框清空并键入新值时,它工作正常。但是当我在文本框中 select 以前的值然后输入新值并单击提交时,我猜它实际上是在保存以前的值。当我按下提交按钮时,它会刷新表单并再次输入以前的值
您似乎有在页面加载时从数据库中检索方法。类似于:
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) 您点击更新按钮
5) 由于您不考虑 PostBack,它再次调用 RetrieveMyData 并且您的文本框具有旧值
6) 您的 Update 方法已执行,但未发生任何更改
如果您将像我展示的那样使用 PostBack:
1) Page_Load -> 检索我的数据
2) 您的文本框有一些来自数据库的值
3) 您更改该值
4) 您点击更新按钮
5) 当您使用 !IsPostBack 并且按钮发生回发时,您的 RetrieveMyData 方法将无法在此处工作
6) 您的更新方法会将旧值更新为新值
希望对您有所帮助