c# - 无法将数据更新到 SQL 表中

标签 c# asp.net sql

我有一个问题。当我把这段代码放在

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/

相关文章:

c# - 将 xml 字符串反序列化为一个对象,我得到缺少列表元素的空列表。为什么不返回null?

asp.net - 如何使用 Asp.Net 从 Sql 数据库获取最后创建的条目的 ID

c# - 使用 CsvHelper 控制 header 字段名称

c# - 名为 'Table' 的数据表已属于此数据集

jquery - 固定高度的数据列表中的谷歌加图像样式

MySQL:链式推理

MySQL GROUP BY查询问题

mysql - 使用 Not 条件在 MySQL 中分组

c# - Linq .GroupBy() 与计数

C# 接口(interface)的选择实现