我有一个问题。当我把这段代码放在
protected void Page_Load(object sender, EventArgs e)
{
string email = Membership.GetUser(User.Identity.Name).Email;
MembershipUser currentUser = Membership.GetUser();
string UserId = currentUser.ProviderUserKey.ToString();
**TextBox2.Text = email;
TextBox3.Text = UserId;**
}
我的数据不会保存到数据库中。
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand cmd = new SqlCommand("UPDATE aspnet_Membership SET Email = @email WHERE UserId = @id1", conn);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@email", TextBox2.Text);
cmd.Parameters.AddWithValue("@id1", TextBox3.Text);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
但是当我删除
**TextBox2.Text = email;
TextBox3.Text = UserId;**
数据将使用上面的代码保存到数据库中。有人能告诉我为什么吗?提前致谢。
最佳答案
鉴于您从未执行过命令,我无法解释。 罢工>
添加
cmd.ExecuteNonQuery();
点击方法结束
因为您是在页面加载事件中设置值,所以当您的按钮在回发时,它们会覆盖控件中更改的值。用
包裹您的页面加载代码if (!Page.IsPostback)
{
string email = Membership.GetUser(User.Identity.Name).Email;
MembershipUser currentUser = Membership.GetUser();
string UserId = currentUser.ProviderUserKey.ToString();
TextBox2.Text = email;
TextBox3.Text = UserId;
}
关于c# - 无法将数据更新到 SQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393759/