【问题标题】:Update table with TextBox values使用 TextBox 值更新表
【发布时间】: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


【解决方案1】:

AddWithValue 将参数值作为第二个参数,而不是SqlDbType

您将它与Add 方法混合使用。

cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;

还可以使用using statement 来处理您的SqlConnectionSqlCommand

编辑:好的,这不是你说的重点(由于 5 个答案删除限制,我无法删除我的答案)。我真的怀疑您的文本框值在您的页面生命周期中会发生变化。顺便说一句,你在哪里定义了这些代码?确保您的文本框值在执行这些代码后保持其值。

【讨论】:

  • 如果您专门阅读 OP However, if I change the Parameter values from for example txtFirstName.Text to "Bob", it successfully updates the FirstName column in my table to Bob。看起来当前代码的文本框值有问题
  • @Murali 你是对的。但我不能删除这个答案,因为我今天有 5 个删除答案限制。你可以投反对票。
猜你喜欢
  • 1970-01-01
  • 2013-11-30
  • 2016-10-23
  • 2019-11-11
  • 1970-01-01
  • 2021-10-18
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多