用TextBox值更新表

本文关键字:更新 TextBox | 更新日期: 2023-09-27 18:02:45

在页面加载时,我有一些文本框填充了来自数据库(名称,地址)的客户信息。我希望用户能够简单地改变这一点,并点击一个按钮来更新他们的个人信息。

我有以下代码运行按钮点击:

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();

这不起作用。如果我将文本框更改为其他内容并单击按钮,什么也不会发生。表没有使用新值更新,也没有得到错误消息。但是,如果我将Parameter值从例如txtFirstName.Text更改为"Bob",它将成功地将表中的FirstName列更新为Bob。

不知道我错过了什么,但由于某种原因使用文本框。文本作为值不工作

用TextBox值更新表

AddWithValue以parameter value作为第二参数,SqlDbType不以parameter value作为第二参数。

你正在用Add方法混合它。

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

还使用using语句来处理SqlConnectionSqlCommand

EDIT:好吧,这不是你说的重点(而且我不能删除我的答案,因为5个答案删除限制)。我非常怀疑您的文本框值是否会在页面生命周期中发生变化。顺便问一下,您在哪里定义了这些代码?请确保您的文本框值保持它们的值,因为执行了这些代码。