我之前问了一个问题,但仍然没有解决,所以我道歉这打破了打开新问题的规则等。
这个命令;
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),我不确定这是否是原因。
非常感谢任何帮助!
答案 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
}
您重新执行初始化文本框和其他控件的所有代码,然后调用您的点击代码,但此时您丢失了页面的用户更改。