表单数据未被SQL Update采用

时间:2014-04-09 21:52:45

标签: c# sql

我之前问了一个问题,但仍然没有解决,所以我道歉这打破了打开新问题的规则等。

这个命令;

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionStringUserData"].ConnectionString);
connection.Open();

string updateSQL = "UPDATE userData SET [First Name] = @FirstName , [Last Name] = @LastName ,  [Display Name] = @DisplayName , [Phone Number] = @PhoneNumber , [Mobile Number] = @MobileNumber , [Date of Birth] = @DoB , AddressNumber = @AddNumber , AddressRoadName = @AddRoad , AddressTown = @AddTown , AddressCity = @AddCity , AddressCounty = @AddCounty , AddressPostCode = @AddPostCode WHERE (ID = @ID)";
SqlCommand update = new SqlCommand(updateSQL, connection);
update.Parameters.AddWithValue("@ID", userID);
update.Parameters.AddWithValue("@FirstName", firstname.Text);
update.Parameters.AddWithValue("@LastName", lastname.Text);
...
update.Parameters.AddWithValue("@AddCounty", addressCounty.Text);
update.Parameters.AddWithValue("@AddPostCode", addressPostCode.Text);
update.ExecuteNonQuery();
connection.Close();
当我单击“保存”按钮(执行此命令的位置)时,

没有从firstname.Text,lastname.Text等获取值。我调试了它,当文本框中有明显的文字时,它只是“”。我在页面加载时加载数据库中的值(可以在这里找到页面加载; pastebin.com/sbscTg8x),我不确定这是否是原因。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

Page_Load中的常见错误。您没有Page.IsPostBack

的测试

在ASP.NET中,每次需要在服务器端运行代码时,都会执行Page_Load中的代码。如果单击按钮,则在单击按钮的代码之前,将引发新的Page_Load事件 如果你没有检查

if(!IsPostBack)
{
  // code that runs only the first time the page is loaded
}

您重新执行初始化文本框和其他控件的所有代码,然后调用您的点击代码,但此时您丢失了页面的用户更改。