【发布时间】:2014-05-09 14:03:53
【问题描述】:
我有一些文本框在页面加载时填充了来自数据库(名称、地址)的客户信息。我希望用户能够简单地更改此设置并单击一个按钮来更新他们的个人信息。
我有以下在按钮单击时运行的代码:
con.Open();
string query = "UPDATE CustomerInfo SET FirstName=@FirstName, LastName=@LastName, Address=@Address, PostalCode=@PostalCode, PostalName=@PostalName WHERE UserName=@UserName";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
cmd.Parameters.AddWithValue("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;
cmd.Parameters.AddWithValue("@Address", SqlDbType.VarChar).Value = txtAddress.Text;
cmd.Parameters.AddWithValue("@PostalCode", SqlDbType.Int).Value = txtPostalCode.Text;
cmd.Parameters.AddWithValue("@PostalName", SqlDbType.VarChar).Value = txtPostalName.Text;
cmd.Parameters.AddWithValue("@UserName", SqlDbType.VarChar).Value = UserName;
cmd.ExecuteNonQuery();
con.Close();
这不起作用。如果我将文本框更改为不同的内容并单击按钮,则不会发生任何事情。该表未使用新值更新,并且我没有收到任何错误消息。但是,如果我将参数值从例如txtFirstName.Text 更改为"Bob",它会成功地将我表中的 FirstName 列更新为 Bob。
不确定我缺少什么,但由于某种原因,使用 textbox.Text 作为值不起作用。
【问题讨论】:
-
您是否在单击按钮之前在 page_load/init 中的某个位置重置文本框值?
-
正如@Murali 所说,在页面生命周期的其他地方设置这些文本框的文本几乎肯定是个问题。我强烈建议阅读 page lifecycle 以及事件处理程序在其中的因素。
-
是的,我正在使用 page_load 上的数据库中的一些信息设置文本。我假设当我更改文本框内容时 textbox.Text 会自动更新。我希望有一种简单的方法来处理这个问题,但我想我会看看页面生命周期。谢谢。
标签: c# asp.net sql-update